01Production
Two inputs, one output, and a chain of deductions before the colony sees a credit.
public float production() { if (inRebellion()) return 0.0f; float workerProd = workingPopulation() * empire.workerProductivity(); float factoryOutput = mod * (workerProd + usedFactories()); return factoryOutput - transportCost(); } private float usedFactories() { return (int) min(industry().factories(), workingPopulation() * industry().effectiveRobotControls()); }
One factory produces one BC. One population produces workerProductivity BC
— a figure that starts around 0.5 and rises with planetology research, multiplied by the racial
modifier. Klackon double it.
The two are complements, not substitutes. You can only operate as many factories as your population times your robotic-controls level allows, so a colony with factories and nobody to run them is inert. Idle factories are genuinely idle: they produce nothing, and they also generate no waste.
From production to spendable income
Raw production is not what the sliders divide. Every empire-level cost is levied on each colony as a flat percentage of that colony's production before anything else happens:
public float totalProductionIncome() { float prod = production(); return max(0, prod - prod * colonyTaxPct() // empire tax - prod * empire.totalSecurityCostPct() // spies + internal security - prod * empire.missileBaseCostPerBC() // missile base upkeep - prod * empire.shipMaintCostPerBC() // fleet upkeep - prod * empire.stargateCostPerBC() // stargate upkeep + actualTradeIncome()); // trade, zero if besieged } public float totalIncome() { return max(0.1f, totalProductionIncome() + maxReserveIncome()); }
This is a structurally important choice. Fleet and base maintenance are not paid from a central treasury — they are a tax on every colony's production. A large navy makes every world in the empire poorer, immediately and visibly, rather than draining a pot the player can watch separately. Overspending on ships shows up as your colonies producing less.
Trade income enters at the same point, and is zeroed for a colony under siege, blockaded by pirates, or quarantined — but the maintenance percentages still apply. A besieged colony pays full costs and collects nothing.
02The budget
Fifty ticks, five categories, and no way to escape the trade-off.
| Category | Buys | Resource bonus? | Leftover BC |
|---|---|---|---|
| Ecology | Waste cleanup, atmospheric terraforming, soil enrichment, size terraforming, bought population — strictly in that order | no | To reserve, but multiplied by the planet's resource bonus first |
| Industry | Factories, and all-or-nothing refits when robotic controls improve | yes | Held as industryReserveBC across turns |
| Research | Research points into the six tech categories | artifacts only | To reserve only when the tech tree is exhausted |
| Ships | One design at a time from the six design slots, or a stargate | yes | Carried in shipBC unless a build limit is hit |
| Defense | Planetary shields, then base upgrades, then new missile bases | yes | To reserve |
Three of the five multiply by the planet's resource bonus — ranging from ×0.33 on an ultra-poor world to ×3 on an ultra-rich one. Ecology and research do not. That makes rich worlds disproportionately good at building things and no better at growing or researching, which is exactly why the treasurer AI ships reserve money to poor colonies rather than rich ones.
On each turn all five categories receive the same production and reserve figures and take their percentage slice independently. They never see each other's leftovers within the turn. The validation order matters though: ecology is clamped first, so a corrupted allocation can never starve waste cleanup.
03Population
Grows for free on a logistic curve, and can be bought outright.
baseGrowthRate = max(0, (1 - currentPop/currentSize) / 10); baseGrowthRate *= empire.growthRateMod(); // racial: Sakkra 2.0, Silicoid 0.5 baseGrowthRate *= planet.growthAdj(); // hostile 0.5, fertile 1.5, gaia 2.0 newPop = max(0.1f, currentPop * baseGrowthRate); // always at least 0.1/turn newPop = min(newPop, currentSize - currentPop);
A logistic curve peaking at half-full, capped at about 2.5% of planet size per turn before modifiers.
The 0.1 floor means an almost-empty colony always creeps upward, so a new settlement is
never truly stuck.
Population is also purchasable from the ecology slider at 20 BC per unit, halved in effectiveness by the reduced-growth option. This is the mechanism that makes ecology spending competitive with industry early on: you can convert credits directly into workers rather than waiting.
Three different ceilings
| Ceiling | Meaning |
|---|---|
currentSize | The hard cap on actual population right now — base size plus terraforming already applied. |
maxSize | What size terraforming could reach with your current technology. |
ultimateMaxSize | What it could reach after atmospheric terraforming and soil enrichment too. |
Terraform level is an absolute ceiling from your best technology, not a cumulative sum — researching the next terraforming tech raises the ceiling rather than adding to a total. Hostile worlds terraform at a reduced rate or, on the strictest option, not at all.
04Factories
Cheap to build, expensive to keep current, and capped twice.
factoryCost = bestFactoryCost * roboticControls / 2 // 10 BC at baseline
maxBuildable = planetCurrentSize * maxRoboticControls
maxOperable = workingPopulation * effectiveRoboticControls
refitCost = existingFactories * bestFactoryCost / 2
The cost of a factory scales with your own robotic-controls level. At baseline controls of 2 a factory costs 10 BC; at controls of 7 it costs 35. Better technology does not make factories cheaper — it makes each one carry more, and charges you accordingly.
When you research a better robotic-controls level, existing factories do not upgrade automatically. The colony must pay half a base-cost factory for every factory it already owns, per controls level, and it cannot pay partially — money short of the full amount parks in a holding account until the whole bill can be settled.
Worse, the refit only fires after the colony has filled its buildable capacity at the current level. A colony that is not yet full never upgrades its controls at all, no matter how good your technology is. This is the single most counterintuitive rule in the economy, and it means a large half-built colony can silently sit at obsolete controls for a very long time.
Meklar are the only race exempt: they ignore refit costs entirely and always operate at their best available controls.
Captured alien factories are a separate pool. When a colony changes hands the loser's factories are escrowed to the loser rather than handed to the winner — and the winner can convert them at a hardcoded 2 BC each, against 10 to 35 for a new one. Taking an industrialised planet is by a wide margin the cheapest way to industrialise.
05Waste and ecology
The mechanic that makes industrialisation self-limiting.
newWaste() = usedFactories * factoryWasteMod // 1 per factory at baseline wasteCleanupCost() = (existingWaste + newWaste) / wasteElimination // 2 at baseline factoryNetProductivity() = 1 - wastePerFactory / wasteElimination
At baseline technology a working factory produces one waste per turn, which costs half a BC to clean. So a baseline factory nets half a BC, not a full one. Ecological restoration research is an economic technology in disguise: it does not make you greener, it doubles the return on every factory you own.
What uncleaned waste does
Waste accumulates on the planet and is capped at 90% of its size — a fully polluted world keeps a tenth of itself habitable. It does not destroy base size; it subtracts from the effective size, and recovers the moment you clean it. But while population exceeds that reduced size, people die:
float over = pop - sizeAfterWaste; float loss = min(over, over/pop * 0.1f * over); // quadratic in the overshoot
The loss is quadratic in the overage. A small overshoot barely registers; a badly polluted world collapses fast. That shape is what makes neglecting ecology feel survivable right up until it suddenly isn't.
Cleanup comes out of the same fifty ticks as everything else, so a heavily industrial empire is structurally research-poor unless it invests in ecology first. Industrialisation carries a running cost that scales with how industrialised you are, and the only way out is research — which the waste is already competing with. Two numbers produce a genuine strategic dilemma.
Silicoid, who ignore planet environment entirely, pay zero cleanup and get full factory productivity. That one exemption is a large part of why they can afford half growth and a research penalty.
The ecology spend order
Ecology money is consumed strictly in sequence, each step eating from what remains:
- Waste cleanup — one BC removes
wasteEliminationwaste. - Atmospheric terraforming — a flat 150 BC accumulated across turns, converting a hostile world to normal and adding roughly 20 to its base size.
- Soil enrichment — 150 BC per environment step, Normal to Fertile to Gaia, each also growing the planet.
- Size terraforming — priced per million population by your best terraforming technology.
- Buying population at 20 BC each.
Because atmosphere runs before soil in the same turn, a sufficiently funded hostile world can go hostile → normal → fertile → gaia in a single turn.
06Defense
Missile bases and planetary shields — and your population is the garrison.
Defense money is spent in a strict priority order:
- Planetary shield at a flat 100 BC per shield point, up to the level your force-field research allows. Zero inside a nebula — shields cannot even be built there.
- Upgrading existing bases to current technology — another all-or-nothing retrofit, and the whole base park flips at once.
- New missile bases up to the per-colony maximum you set.
A missile base costs a minimum of 120 BC plus its fitted components, and carries 2% of its build cost per turn in upkeep — levied, like all maintenance, against every colony's production. Lowering a colony's base cap refunds the surplus at current prices, so bases are a reversible investment rather than a sunk one.
In ship combat a colony fights as a single immovable stack whose count is the number of active bases, firing across the whole map. With no bases at all it has no defensive statistics whatsoever. Against invading transports each base fires three missiles at full damage, ignoring shields entirely.
Collateral damage from bombing uses two different divisors. With at least one base present the damage is "targeted" — 400 damage per population lost and 100 per factory. With no bases it is "untargeted" — 200 and 50, that is, twice as destructive.
The reading is that bombs are being split between the bases and the planet. It means a token missile base is worth building on any world you expect to be bombed, purely as damage mitigation, entirely separately from whether it can win the fight.
There is no separate garrison: troops() is simply the colony's population rounded up. Every
colonist is a soldier, which is why invading a large world is expensive and why bombing one first is
the standard prelude.
07The shipyard
One design at a time, and no build queue at all.
A colony builds exactly one design at a time, chosen by cycling through the empire's six design slots. There is no queue — the fields that look like one are AI planning scratch, reset every turn.
Switching designs does not destroy accumulated money, but it does penalise you: the partial build moves into a shipyard reserve that can only be drawn back down at the colony's own production rate per turn. Flip-flopping between designs therefore costs tempo rather than credits.
| Situation | What happens to leftover BC |
|---|---|
| No build limit set | Carried over in shipBC toward the next hull |
| Build limit reached | Flushed to the empire reserve — and therefore halved |
| Design was scrapped | The entire turn's allocation goes straight to reserve |
| Design changed | Moved to the shipyard reserve, drip-fed back |
Stargates are built through the same slider as a pseudo-design costing 3000 BC, with 300 BC per turn upkeep thereafter. Under financial pressure an empire will simply scrap a gate to stop paying for it. Newly built ships appear in orbit, and can optionally rally onward immediately or stay to fight this turn's battle at their birth system first.
08The reserve
A redistribution tool, deliberately made lossy.
public void addToTreasury(float amt) { totalReserve += amt; } public void addReserve(float amt) { addToTreasury(amt/2); } // HALVED
Money reaches the treasury two ways: an empire tax of up to 20% on colony production, and category overflow. Both go through the halving path. Money spent back out of the reserve into a colony is capped at that colony's own production, and does not receive the planet's resource bonus.
The design intent is unusually clear. Hoarding is punished, specialisation is rewarded, and the reserve exists to move money from a rich finished world to a poor growing one rather than to bank it. Most 4X games give you a global purse; making the purse leaky is what keeps colony-level decisions meaningful instead of collapsing everything into one empire-wide budget.
Not every colony pays tax. A colony currently receiving reserve money is exempt, as is one still building up. So the tax naturally falls on mature worlds and the spending naturally lands on young ones, without the player having to manage it.
09Founding a colony
A colony ship is consumed, and the new colony starts with almost nothing.
Colonisation resolves after bombardment and after invasions, and only on systems with no owner. Two independent checks must pass: your empire must be able to colonise that planet type, and so must the colony pod fitted to the ship. Both are governed by the Controlled Environment ladder, seven levels each unlocking one more rung of hostility.
With no Controlled Environment technology at all you can settle everything down to Minimal. Hostile worlds — Barren and worse — each need their own level. Silicoid bypass the whole ladder.
The colony ship is consumed, not converted, and the new colony begins with:
| Colony | Population | Factories | Notes |
|---|---|---|---|
| New colony | 2 | 0 | Always. Unless you previously owned this world, in which case your escrowed factories return. |
| Homeworld | 50 | 30 | Plus two scouts and a colony ship in orbit. |
| Companion world | 30 | 20 | Optional setting; Terran, size 60, one light year out. |
Starting at population 2 on a size-100 world is why the early game is dominated by ecology spending: the logistic curve is at its slowest when the colony is nearly empty, so buying population outright is often the correct opening move on a good planet.
10Transports
Population is a movable resource, and moving it is expensive before it even launches.
A colony can schedule up to half its population as transports. There is no BC cost to do so — but while the transport sits waiting to launch, that population stops working, stops breeding, stops counting toward the factory cap, and costs a flat one BC per head per turn. Scheduling transports is immediately expensive; launching them makes the cost disappear along with the people.
Equipment is snapshotted at launch. Researching better armour or battlesuits mid-flight does not upgrade troops already in space. Transports of the same empire arriving at the same system merge, taking the best of each stat.
Arrival
| Destination | Result |
|---|---|
| Your own peaceful colony | Lands immediately on arrival; population added, capped at planet size, overflow lost. |
| Your own rebelling colony | Fights the rebels. Missile bases do not fire — the rebels do not get to use them. |
| An enemy colony | Invasion, resolved after bombardment. See below. |
| An abandoned world | Re-founds the colony with no colony ship needed — and any empire can do this, not just the one that left. |
| An empty or bombed-out world | The troops die. |
There is no interception in deep space. Transports are only shot at over their destination, running a gauntlet of hostile orbiting fleets and, on an enemy world, its missile bases. The number of gauntlet rounds falls from four to one as transport engine speed rises — so propulsion research is directly invasion research.
Notably, even a friendly landing runs the gauntlet if hostile ships are in orbit. You cannot reinforce a besieged colony for free.
11Invasion
One soldier at a time, and the winner inherits almost nothing.
The full sequence when transports arrive at an enemy colony:
- Environment check — if you cannot colonise that planet type, everyone dies.
- War declaration — if not already at war, one is declared. Peace signed after the transports launched aborts the invasion entirely.
- Combat transporters let a percentage of troops bypass the gauntlet; the defender's Subspace Interdictor halves that percentage.
- The gauntlet — each missile base fires three missiles at full damage ignoring shields, plus every hostile fleet in orbit, over the gauntlet rounds.
- Ground combat, resolved one man at a time.
attRoll = random(100) + attacker.combatAdj(); defRoll = random(100) + defender.combatAdj(); // includes a flat +5 defender bonus if (attRoll < defRoll) attacker loses a trooper; else defender loses one population;
The defender's flat +5 means that at equal technology an ordinary attacker wins only about 45% of exchanges — invading is a losing trade unless you bring more troops than the defender has population. Bulrathi's racial +25 lifts that to about 68%, which is what makes them the invasion race.
What the winner gets
Surviving troops become the new population. Technology is plundered at 2% per enemy factory, capped by a game option at six by default. And then almost everything else is destroyed:
| Asset | Fate |
|---|---|
| Factories | Escrowed to the loser, not transferred. The winner starts with none unless it previously owned this world — and can convert the escrowed ones at 2 BC each. |
| Missile bases and shield | Wiped entirely. |
| Stargate | Destroyed, along with all partial ship progress. |
| Terraforming | Kept — it lives on the planet, not the colony. In-progress terraforming money is lost. |
| Rebels | Cleared. |
The factory escrow is an elegant touch. It means recapturing your own world hands your industry back, it means a conquered planet is not an instant economic windfall, and it gives the 2 BC conversion cost something to act on. Taking a planet is cheap; making it productive again is not free but is far cheaper than building from nothing.
12Rebellion
A colony can be removed from the game without a shot being fired at it.
Rebels accumulate on a colony, and once they reach half the population the colony revolts. The main source is enemy sabotage, which incites 2–20% of the population per successful mission — and capitals are immune.
A rebelling colony is comprehensively out of the game:
- Production is zero, and its whole turn is skipped — no building, no growth, no research. It also generates no waste.
- The sliders are locked and it is excluded from the empire budget.
- It cannot send transports, and friendly transports arriving must fight their way in.
Rebellion also spreads. Each turn, every colony near a rebelling one has a chance of
0.05 / distance to catch it — so a neighbour five light years away has a 1% chance per
turn. Capitals never catch it.
There is no passive decay: rebels do not calm down on their own. The only cures are landing your own troops, attrition from any ground combat on the world, or — for an AI empire whose rebelling population exceeds its loyal population — the leader being overthrown, which installs a new leader, breaks every treaty, and ends every rebellion in the empire at once.
Rebellion is the mechanism that makes sabotage a genuine alternative to war rather than a nuisance. Sustained over several turns against the same target it removes a colony from the enemy economy entirely, spreads to its neighbours, and costs you nothing but spy upkeep. It is the cheapest offensive capability in the game and the one most likely to be underestimated.
13Death and abandonment
Two nearly identical code paths with one meaningful difference.
A colony bombed to zero population is destroyed: the system becomes plain uncolonized, and anyone with the right technology can settle it with a colony ship. Your factories remain escrowed on the planet and return if you re-colonise it.
Abandonment is the same operation plus one flag. There is no abandon button as such — you abandon a colony by scheduling transports carrying its entire population, which is why the scheduling call has an explicit override allowing you to exceed the normal half-population limit.
An abandoned system keeps its name and joins a registry of abandoned worlds — and an abandoned world can be re-founded by transports alone, with no colony ship. Including by a different empire than the one that left.
Combined with the fact that an empire only goes extinct when it has no colonies and no transports in flight, this makes deliberate evacuation a real strategy. You can pick up an entire colony and move it, and survive the interval with your whole civilisation in space.
14Quirks worth knowing
Places where the implementation surprises.
- Ecology leftovers are profitable on rich worlds. Ecology does not receive the planet's resource bonus while spending — but on the way out it retroactively applies that bonus to the production-derived portion of the leftover. On an ultra-rich planet leftover ecology money is tripled before being halved into the reserve, a net gain. It is the only place in the game where returning money to the treasury makes a profit.
- The security cost constant cancels itself out. Internal security cost is the total security percentage divided by a ratio of two, and that total is itself the ratio times the allocation over a hundred. The real cost is just the allocation percentage; the constant only affects the number displayed.
- Adding new missile bases silently forfeits partial upgrade progress. The accumulated retrofit fund is reset to zero whenever new bases are added, so alternating between expanding and upgrading your bases wastes money.
- Shipyard maintenance is computed and is always zero. The colony income formula still subtracts a shipyard maintenance term; stargate upkeep migrated to the empire level and the colony-level function now returns a permanent zero.
- Two different population bases are used for the same concept. The factory usage cap excludes population loaded onto transports; one of the factory limit helpers includes it. A colony with transports pending can report a higher limit than it can actually operate.
- The maximum-landing-troops option is inert. Its switch statement has no break statements, so every case falls through to the unlimited branch regardless of the setting.