How to read the data
Section titled “How to read the data”The game database as shipped holds eight rows in DIM_PopPoliticalStatus. An edited database can hold different values, and the game uses whatever the database holds. The table reproduces every column and every stored value. NextStatusID is the status a population moves to next. SPRequired is the progress threshold for that move. The other numeric columns are decimal multipliers that the game reads as stored, without conversion.
StatusID |
StatusName |
NextStatusID |
SPRequired |
ProductionMod |
WealthMod |
OccupationForceMod |
ProtectionRequired |
ServiceSector |
|---|---|---|---|---|---|---|---|---|
| 1 | Imperial Population | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
| 2 | Conquered | 3 | 100 | 0.2 | 0.2 | 1 | 0 | 0.1 |
| 3 | Occupied | 4 | 250 | 0.4 | 0.4 | 0.75 | 0 | 0.25 |
| 4 | Subjugated | 7 | 600 | 0.6 | 0.6 | 0.25 | 0.5 | 0.4 |
| 5 | Slave Colony | 0 | 0 | 0.7 | 0.1 | 1.5 | 0 | 0 |
| 6 | Client State | 1 | 1800 | 0.8 | 0.8 | 0 | 2 | 0.75 |
| 7 | Candidate Population | 1 | 1200 | 0.8 | 0.8 | 0 | 1 | 0.75 |
| 8 | Vanquished | 4 | 300 | 0.2 | 0.2 | 0 | 1 | 0.1 |
The game’s rules refer to statuses 1 to 7 individually. ID 8 (Vanquished) exists only as a database row, and no game rule ever assigns it. When a game is loaded, every row becomes a status in the running game, including ID 8.
No population reaches Vanquished in play with the game database as shipped. Every rule that sets a population’s political status uses one of statuses 1 to 7, restores a saved ID, or follows a NextStatusID link. No rule assigns ID 8, and no row has NextStatusID 8. No window offers a control that lists or selects a political status, and Spacemaster mode has none either. The Economics window transfer button always hands a population over as Imperial Population. The Vanquished link to Subjugated is therefore dormant. A population holds Vanquished only after a database edit writes ID 8 into FCT_Population.PoliticalStatus or into another row’s NextStatusID. Status reachability in play lists every rule that sets a status. The order of the IDs says nothing about the order of transitions.
When a game is loaded, the game reads SPRequired, NextStatusID, all five coefficient columns and StatusName from each row. It then links each status to its next status only when a row with that NextStatusID exists. A target of 0 normally has no linked status because the table has no status 0.
Directed progression links
Section titled “Directed progression links”These are the links stored in the NextStatusID column. They are not a presumed social hierarchy.
| From | Link | Meaning with the game database as shipped |
|---|---|---|
| Conquered (2) | to Occupied (3) | Progress threshold 100 |
| Occupied (3) | to Subjugated (4) | Progress threshold 250 |
| Subjugated (4) | to Candidate Population (7) | Progress threshold 600 |
| Candidate Population (7) | to Imperial Population (1) | Progress threshold 1200 |
| Client State (6) | to Imperial Population (1) | Progress threshold 1800 |
| Vanquished (8) | to Subjugated (4) | Progress threshold 300 |
| Imperial Population (1) | to ID 0 (no row in the table) | Imperial progress is switched off |
| Slave Colony (5) | to ID 0 (no row in the table) | Threshold is zero. See the special case below |
Runtime progression rules
Section titled “Runtime progression rules”The political progress step runs once per construction cycle for each population, right after the unrest and stability update. It adds status points only when unrest is exactly 0 and the current status is not Imperial Population. It does not require a positive population, and it does not check that a next status exists before it adds points.
The daily rate is 1.5 - whole-number((determination + militancy + xenophobia) / 300). Combined values from 0 to 299 produce 1.5 points per day. Values from 300 to 599 produce 0.5. Values from 600 to 899 produce -0.5. The three species traits therefore change the rate in steps, not continuously. For example, values 100/50/50 sum to 200, so the rate is 1.5, not 0.8333.
When the body’s radiation level is strictly greater than 100, the rate is divided by radiation level / 100. At 100 radiation there is no divisor. At 200 the rate is halved. The elapsed time in seconds is divided by 86400 and multiplied by the resulting rate, and the result is added to the stored points. Progress can go negative when the species sum reaches 600 or more. The game does not stop it at zero.
A status change requires stored points strictly greater than SPRequired, and NoStatusChange equal to 0 in the population’s FCT_Population row. Equal points do not cause a change. On a change the game resets the points to zero and gives the population the linked next status. It makes at most one change per cycle and discards any excess points. It then logs an event that gives the population name, then “has moved to a political status of”, then the new status name. The event type is 115, Pop Status Change, in DIM_EventType. NoStatusChange blocks the change but not the accumulation.
For example, a Conquered population at exactly 100 points remains Conquered. At 100.01 points, with zero unrest and NoStatusChange 0, it advances to Occupied and its points reset. A long time increment still advances only one link.
A Slave Colony has threshold 0 and target 0. If a population held it and gained a positive amount of points, it would pass the strict threshold and receive the missing next status, so it would be left with no political status at all. The event message that follows reads the new status name and fails. The game reports error code 2087 (shown as Function #2087) and the political progress step ends there, leaving the population with no political status. Every later cycle with unrest exactly 0 fails again when the update checks the current status. The production, protection, wealth and save steps that read the status also fail.
This zero target is dormant data. No game rule assigns Slave Colony and no row links to ID 5, so a population reaches it only after a database edit, as status reachability in play shows. The zero target is not evidence of an intended destination.
Imperial Population never accumulates points, whatever its SPRequired or next ID. Other statuses accrue only at exactly zero unrest. Even a small positive unrest value pauses accrual. The update does not reject a negative elapsed time. Cycles in which NoStatusChange is nonzero still add progress, which can leave the points above the threshold until a later eligible cycle.
Meaning and use of coefficient fields
Section titled “Meaning and use of coefficient fields”The stored values are plain decimal multipliers, not percentages. OccupationForceMod is a direct factor in the required occupation strength. Required occupation strength = resistance factor per million x population in millions x OccupationForceMod. The resistance factor per million is (determination + militancy + xenophobia) / 300, without dropping the fraction. For a 10-million population with resistance factor 1, Conquered’s value 1 means 10 strength required. Occupied’s 0.75 means 7.5. A stored zero means zero required occupation. A stored one keeps the baseline species-resistance requirement. The population summary shows “Occupation Required / Actual” for every population that is not Imperial Population. Occupation-shortfall unrest applies only when the required strength is greater than 0 and greater than the actual occupation strength. Zero occupation demand does not switch off other sources of unrest.
ProtectionRequired is also a direct multiplier. Protection required = population in millions x (militancy / 100) x ProtectionRequired. The resulting demand is in HS of qualifying weapons. For 20 million population, militancy 50 and coefficient 0.5, the requirement is 5 HS. Coefficient 1 gives the baseline 10 HS, while zero gives no positive demand. Protection counts undamaged qualifying weapons on noncommercial ships, excluding CIWS and decoy launchers. Each undamaged weapon adds its size in HS. A commercial ship adds nothing. The total sums every ship of every non-civilian fleet of the same race in the population’s system.
Protection-shortfall unrest applies only to populations strictly above 10 million that are neither capitals nor NPR colonies. The population summary refresh applies the same three conditions. A calculated requirement is therefore distinct from whether its shortfall causes unrest. See the occupation, protection, unrest and stability rules.
ProductionMod and WealthMod are factors in the production and wealth calculations. Research lab output, for example, is the number of research labs times the economic production modifier times manufacturing efficiency times the radiation production modifier times stability times ProductionMod. The wealth modifier is WealthMod times the race’s wealth creation rate times the radiation production modifier. The colony governor’s wealth creation bonus then multiplies it, the sector governor’s wealth creation bonus multiplies it at a quarter of its strength above 1, and stability multiplies it when unrest is above 0. A stored 1 is neutral in these formulas. A stored 0 suppresses the affected amount, while 0.2 multiplies it by one fifth. The population summary multiplies each value by 100 and shows it as a percent with up to two decimals, under “Political Status Production Modifier” and “Political Status Wealth Modifier”. A value of 0.2 is shown as 20%.
ServiceSector is read when a game is loaded and then never used. The workforce calculation derives the agriculture, service and manufacturing shares from population and environment and does not use the status service value. The service values in this table therefore have no effect in play. They are distinct from the calculated service workforce fraction.
Assignment, occupation, and save/load boundaries
Section titled “Assignment, occupation, and save/load boundaries”Ground-combat surrender hands the population to the winner through the shared control transfer, with the resulting status Conquered (ID 2). The surrender test runs first. The surrender requirement is (determination + militancy + xenophobia) / 300 x population in millions, and the population surrenders when the occupying side’s occupation strength is at least that value. The shared transfer assigns the requested status only when the new owner differs from the population’s recorded original race and the population is nonzero. A return to the original race, or the transfer of an empty colony, assigns Imperial Population. Either way the transfer resets status points and unrest to zero. At the end it overwrites the recorded original race with the outgoing current owner, then assigns the new owner. The recorded original race, stored as FCT_Population.OriginalRaceID, is therefore not a fixed founding-race history. See population control transfer.
Independence uses the same transfer with Imperial Population as the requested status. A newly created population starts as Imperial Population. When a game is loaded, each population’s saved status ID is looked up among the statuses loaded from the current DIM_PopPoliticalStatus.
Ongoing occupation uses the status occupation factor and separately computes net police and annual unrest reduction. The initial surrender and ongoing occupation are distinct checks. The protection factor sets the required fleet protection. Of the five coefficients, only ServiceSector has no effect. The game saves each population’s status ID in FCT_Population.PoliticalStatus and its progress in FCT_Population.StatusPoints. It rewrites the FCT_Population rows of the game on every save. Loading rebuilds the statuses and their next links from the current DIM_PopPoliticalStatus, so a changed database can change the rebuilt graph. See saved state and reload.
Status reachability in play
Section titled “Status reachability in play”Five game rules set a population’s political status. A population has no default status. When a game is loaded and the saved ID has no row in DIM_PopPoliticalStatus, the population is left with no political status at all.
| Rule | Status assigned | Condition |
|---|---|---|
| Loading a saved game | The saved FCT_Population.PoliticalStatus ID |
The loaded statuses contain the ID |
| Political progress step | The current status’s linked next status | The progress gate passes |
| Control transfer to another race | The requested status | The new owner is not the recorded original race and the population is nonzero |
| Control transfer to another race | Imperial Population | Any other transfer |
| Creating a population | Imperial Population | A new population is created |
Four game actions request a status from the control transfer. Two of them request Imperial Population, so only ground surrender and sovereignty diplomacy can produce a non-Imperial status by transfer.
| Action | Requested status | Trigger |
|---|---|---|
| Ground-combat surrender, during ground combat resolution | Conquered | Occupation strength meets the surrender requirement of species sum / 300 x population in millions |
| Transfer of an NPR’s populations in a system to the occupying race, from either of the two acceptance outcomes of NPR territorial sovereignty diplomacy | Occupied | An NPR accepts another race’s sovereignty claim on one of its systems |
| Grant of independence, from the Economics window independence button | Imperial Population | The player grants independence |
| Economics window transfer button | Imperial Population | The player transfers the population |
When an NPR accepts a sovereignty claim, each of its populations in that system with more than 0.01 million population or any installation transfers, and the game removes the rest. A transferred population with zero population receives Imperial Population instead of Occupied.
| ID | Status | Reachable in play | Route |
|---|---|---|---|
| 1 | Imperial Population | Yes | Direct assignment at creation, on independence, on transfer back to the original race or of an empty colony, and through the Economics transfer. Progression from Candidate Population |
| 2 | Conquered | Yes | Direct assignment through ground-combat surrender only |
| 3 | Occupied | Yes | Direct assignment through sovereignty diplomacy. Progression from Conquered |
| 4 | Subjugated | Yes | Progression from Occupied. The link from Vanquished is dormant |
| 5 | Slave Colony | No | No rule assigns it and no row has NextStatusID 5 |
| 6 | Client State | No | No rule assigns it and no row has NextStatusID 6. Its link to Imperial Population is dormant |
| 7 | Candidate Population | Yes | Progression from Subjugated only |
| 8 | Vanquished | No | No rule assigns it, and no row has NextStatusID 8 |
“No” means unreachable without a database edit to FCT_Population.PoliticalStatus or to a DIM_PopPoliticalStatus link. Each progression route also requires the gate to pass. Unrest must be exactly zero, the species sum must stay under 600 for positive accrual, and NoStatusChange must be zero. Nothing in play changes NoStatusChange, so only a database edit changes it. The game reads it from FCT_Population when a game is loaded and writes the same value back on save.
With the game database as shipped, a population reaches five of the eight statuses in play. Imperial Population, Conquered and Occupied are assigned directly, and Subjugated and Candidate Population follow by progression. Slave Colony, Client State and Vanquished are unreachable without database edits, so their rows, their links and the Slave Colony zero target are dormant data. ServiceSector has no effect in play.
Concept map
Section titled “Concept map”- Status table values list every row of
DIM_PopPoliticalStatusand why no rule ever assigns ID 8. - Progression links show the graph that
NextStatusIDbuilds. - Progress rate and gate move a population along those links.
- Coefficient effects feed occupation, protection, production and wealth.
- Status reachability in play lists every rule that sets a status.
- Surrender and occupation strength owns the surrender test that produces Conquered.
- Population control transfer sets the requested status and resets points and unrest.
- Occupation and political interface compares surrender with ongoing occupation.
- Colony conquest and control transfer places the status change in the ownership change.
- Occupation, protection, unrest and stability owns the unrest that pauses progress.
- Political integration and control changes covers advancement from the colony side.
- Workforce efficiency, production and taxes derives the workforce shares that ignore
ServiceSector. - Environment, infrastructure and capacity holds the colony cost that sets the agriculture share of the workforce.
- Identity, creation and founding starts every colony as Imperial Population.
- Saved state and reload rebuilds saved status IDs from current data.
- Saving, loading and reconstructing references explains the general ID lookup on load.
- Player protection claims against an NPR transfers populations as Occupied.
- Strategic construction cycle order places the progress step.
- Production capacity and modifiers holds the formulas
ProductionModmultiplies. - Population taxes, financial centres and debt holds the formulas
WealthModmultiplies. - Colony output and income cycle joins status coefficients with colony output.
- Pop Status Change events list event type 115, logged on each status change.
- Economics window operations list Spacemaster tools, none of which sets a status.
Resources
Section titled “Resources”Related community documentation and developer posts. These may describe a different game version.