Species engineering changes the inhabitants’ tolerances. Terraforming changes their shared environment. Ordinary growth, orbital inhabitants, infrastructure support and the colony record lifecycle belong to colony and population lifecycle. Laboratory assignments, research queues, RP spending and research cancellation belong to research and scientific personnel. The Target Species list described below uses a parent rule that does not match the parent the designer records.

The New Species research category is player-defined category 47 in DIM_ResearchCategories (PlayerDefined 1). Its five source selections are New Species (tech type 253), Temperature Range (179), Base Temperature (180), Base Oxygen Level (181) and Base Gravity (182), as named in DIM_TechType. The Create Research Project window uses selection 0 as the source species and selections 1 to 4 as the four technology inputs, in that order. The window hides the Prototype button for this category.

The source species list holds the distinct species of the race’s populations whose total population is above 0. It keeps only species that have no parent species and sorts them by name. It is not limited to the race’s primary species, to surface residents or to the selected colony. A derived species has a parent, so this designer list leaves it out. This prevents a chain of successive derivations through the window. The species creation step itself does not enforce that restriction.

The four technology lists offer the technologies of the requested type for which the race has a knowledge row in FCT_RaceTech. Rows marked obsolete are not excluded. With Show Next Tech checked, the list also finds the cheapest unknown technology of the type that is not researched automatically (AutomaticResearch 0). It then adds every unknown technology of that type whose DevelopCost is no higher than that one. This addition does not recheck prerequisites or race ownership. These are rules of the selection lists, and the species creation step does not repeat them. When a required selection list is empty, the window disables the Create button and shows “Cannot design component without all required technology” in place of a preview.

The game database as shipped includes Genome Sequence Research (FCT_TechSystem 37979, 5,000 RP, tech type 178 Genetics). It also holds the initial +3-degree temperature range technology, Genome Sequence: Temperature Range +3 degrees (37980, 2,000 RP, AdditionalInfo 3), and the -8-degree base temperature technology, Genome Sequence: Base Temperature -8C (37982, 2,000 RP, AdditionalInfo -8). Both require 37979. These are data rows, not extra conditions of the creation step. Genetic conversion rate technology (tech type 284) is a separate type from these design inputs.

Environmental formulas and inherited fields

Section titled “Environmental formulas and inherited fields”

Let the source species’ ideal oxygen, oxygen deviation, ideal gravity, gravity deviation, ideal temperature and temperature deviation be O, Od, G, Gd, T and Td. Let the four selected technologies’ AdditionalInfo values be the range addition a (Temperature Range), the temperature shift b (Base Temperature), the oxygen multiplier c (Base Oxygen Level) and the gravity multiplier d (Base Gravity). Temperature is stored in Kelvin. Adding a degree shift gives the same numerical change in Celsius.

Result Calculation, in order
Oxygen tolerance ratio Ro = Od / O, with no prior rounding and no guard against a zero ideal
Ideal oxygen new O = O x c, rounded to 3 decimals
Oxygen deviation new Od = new O x Ro, rounded to 3 decimals, then any value above 0.9 becomes 0.9
Ideal temperature new T = T + b
Temperature deviation new Td = Td + a
Ideal gravity new G = G x d, rounded to 3 decimals
Gravity tolerance ratio Rg = Gd / G, rounded to 3 decimals, then any value above 0.975 becomes 0.975
Gravity deviation new Gd = new G x Rg, rounded to 3 decimals
Development cost (sum of the four input technologies' whole-number DevelopCost) / 10, rounded to a whole number
Each minimum and maximum new ideal minus and plus the new deviation

Every rounding here sends an exact half to the even neighbour. The environmental values use binary floating-point arithmetic. The cost division and its rounding use exact decimal arithmetic, and the result is then stored as a whole number. The gravity ratio is rounded before the multiplication, the oxygen ratio is not. The oxygen cap is an absolute deviation in atm, while the gravity cap is a ratio applied before the deviation is calculated. The creation step has no lower bound on any value, no minimum development cost, no habitability check against a target body and no separate pressure increase. The ranges come from the final stored ideals and deviations without another rounding pass.

Field group Designer behaviour
Identity and ancestry A new species ID and a new technology ID. The source species becomes the parent, and DerivedSpeciesID holds the source species ID
Environmental changes Oxygen, temperature and gravity ideals and deviations from the formulas above
Environment retained Breathable gas, maximum atmospheric pressure and homeworld are copied
Social attributes retained Xenophobia, Diplomacy, Translation, Militancy, Expansionism, Determination and Trade are copied
Other retained attributes The species image and the population density, growth, research rate and production rate modifiers (PopulationDensityModifier, PopulationGrowthModifier, ResearchRateModifier, ProductionRateModifier) are copied
Fresh state No race knows the species yet, the set of ground unit capabilities is empty, and total population is at its default
Values not copied GraduationAge keeps the default 21. SpecialNPRID and the race creation sort priority keep their defaults

This compact designer therefore cannot raise growth, research or production, and it does not copy ground unit capabilities or a non-standard graduation age. The copied homeworld does not create a new homeworld population or change the race’s primary species.

Each preview builds a pending technology and a pending species. This uses up a technology ID and a species ID, but neither record is registered and no knowledge is granted. The default name is the source species name plus “ 2.0”. The preview text shows the breathable gas, the ideal temperature and range in Celsius, the ideal oxygen and range in atm, the ideal gravity with the gravity ratio as a percentage and the range in G, and the development cost in RP. It does not show every inherited value. No Name Update keeps the player’s project name across preview refreshes.

The new technology belongs to the race. It sits in the New Species category (47), has tech type 189 (RD Species) and has the description “Race-designed Species”. The four selected source technologies do not become its prerequisites. Prerequisite1 and Prerequisite2 keep their default of 0. The creation step does not register background technologies the way a component design does.

Create renames the pending technology from the project name box. When the Company Name box is not empty, its text and a space go in front of the name. Create then registers the technology, gives the species the same name and registers the species. It shows the message “Project created. Research the new project on the Research tab of the economics window” and refreshes the preview. Create does not complete research and converts no one. Ordinary research eligibility and completion apply. The project list on the Research tab of the Economics window leaves out projects the race already knows, has active or has queued. Completing the research adds the race’s FCT_RaceTech row for the project with Obsolete false. Research can pause or cancel the project independently of any colony conversion setting, as described in assignments, pause, cancellation and queues.

The Instant button also registers the pending species and technology, completes the research at once and refreshes the preview. It shows the message “Project has been created and automatically researched”. The window shows the Instant button only in Spacemaster mode. Instant converts no one and does not change the parent link.

The game also has a creation path that registers both records and completes the research at once. The Create button does not use it. Neither this path nor Create makes a species its own parent.

Target selection and the self-reference restriction

Section titled “Target selection and the self-reference restriction”

The Industry tab of the Economics window shows the genetic modification panel only when the selected population’s species has no parent species. The panel fills its Target Species list and then tries to select the population’s stored target species. A species appears in the list only when both of these hold:

  • It has a linked research project, and its recorded parent species is the species itself.
  • The selected population’s race has a knowledge row in FCT_RaceTech for that project.

The list is sorted by species name. The parent test compares the candidate with itself. It does not compare it with the colony’s species. A normal designer result points to its source species as its parent, so it does not qualify, even after its research is complete. Base species have no parent and do not qualify either. This mismatch is how the game behaves. The list is not a list of all researched descendants of the colony’s species.

The parent assignments found are the designer, which sets the source species as the parent, and the game load, which resolves the stored DerivedSpeciesID. A saved row whose DerivedSpeciesID equals its own SpeciesID loads as a species that is its own parent, which is what the list requires. A row with an ordinary source parent ID keeps that parent when loaded, and research completion does not rewrite it. The list applies no further filter for source compatibility, target habitability, maximum cost or obsolete technology.

Choosing an entry in Target Species stores it as the population’s target, unless the window is in the middle of a refresh. With no population selected, the window shows “Please select a population”. The Start and Stop button needs only a selected population. It flips the population’s genetic modification run setting (FCT_Population.GeneticProdStatus) and does not require centres, a target, a known technology or a suitable environment. The conversion itself does not repeat the panel visibility rule or the list rule. A target that was saved earlier, or set by any other means, can therefore reach conversion even when the list does not show it.

Annual conversion capacity is in millions of surface inhabitants per year.

N = whole-number(sum of (installation amount x GeneticModificationValue)), summed over the colony’s installations

genetic modification rate = race FCT_Race.GeneticConversionRate x N x production output modifier

The weighted installation capacity is truncated toward zero before the rate and the modifiers multiply it. Fractional capacity below one contributes no conversion. The rate calculation does not test the run setting and does not require a target. No orbital module contributes to this formula. The civilian governance page restates this formula, and the colony output page covers when the game recalculates the rate.

production output modifier = governor Production bonus x sector governor quarter Production bonus x species production rate x race economic production modifier x efficiency x radiation production modifier x stability x political status production modifier. The species production rate is FCT_Species.ProductionRateModifier, the race economic production modifier FCT_Race.EconomicProdModifier, efficiency FCT_Population.Efficiency, and the political status production modifier DIM_PopPoliticalStatus.ProductionMod.

A missing governor or sector governor contributes 1. The sector quarter bonus is 1 + (bonus - 1) / 4, and it is 1 when the sector governor lacks the Production bonus. The species term is the source colony’s species production rate. Workforce shortages, radiation, unrest and political status can therefore reduce conversion through the ordinary production multiplier. See production capacity and modifiers, governors, sectors and distinct output factors and workforce, efficiency, production and taxes.

The race conversion rate defaults to 0.5. Completing a Genetic Conversion Rate technology (tech type 284) replaces it with that technology’s AdditionalInfo. In the game database as shipped, Genetic Conversion Rate 500k (FCT_TechSystem 95) has 0.5 and Genetic Conversion Rate 640k (96) has 0.64. The series continues with 800k (97) at 0.8, 1m (98) at 1, 1.25m (99) at 1.25 and the row named 16m (100) at 1.6. In the installation catalogue, the Genetic Modification Centre (DIM_PlanetaryInstallation 40) has GeneticModificationValue 1 and requires technology 37979 (RequiredTechID). It costs 2,400 BP (Duranium 300, Corbomite 1,200, Boronide 600, Mercassium 300) and needs 0.25 million Geneticists (Workers). The conversion step does not itself check that installation’s prerequisite or charge its construction cost again.

Execution timing and same-body populations

Section titled “Execution timing and same-body populations”

The strategic construction cycle refreshes body population totals and colony environment before its population production pass. It takes a snapshot of the population list for that pass. Elapsed years are elapsed seconds / 31,536,000, the number of seconds in a year. The cycle holds this value as a floating-point number and converts it back to an exact decimal for each population’s production step.

Other colonies recalculate the output modifiers and the conversion rate before surface growth applies. Conversion comes later, after industrial work, terraforming, fuel production and research. It runs only inside the part of the step that needs a total population above 0, and only when a target species is set. The conversion step then checks only the run setting.

For a running colony in an ordinary state with no negative values:

  1. Converted = genetic modification rate x elapsed years.
  2. If the source surface population (FCT_Population.Population) is below converted, converted becomes that surface amount.
  3. The game finds the first population of the target species with the same race on the same body. If there is none, it creates one.
  4. Converted is added to the target’s surface population.
  5. Converted is subtracted from the source’s surface population.

There is no whole-person rounding and no stored fractional balance. Surface population is a decimal number of millions. Orbital passengers are neither debited nor converted. The step transfers or charges no minerals, fuel, wealth, research points or installations. It does not check destination infrastructure, environmental survival, lineage, technology knowledge or political status. The target record is looked up or created even when the converted amount is zero.

A newly created target is a separate colony record. It has the Imperial Population political status, stability 1, zero residents and stockpiles, no installations and no projects, the race’s survey record of that system and the body’s name as the race displays it. Creation calculates the colony cost for the target species and stores it as LastColonyCost, but does not reject an uninhabitable result. The source’s installations, governor, research projects and other state stay with the source record. The source record keeps its species.

Setting a surface population clamps a negative value to zero and sets total population = surface population + orbital population. It does not at once refresh workforce, body totals, colony cost, infrastructure or production rates. A newly created target is not in the current pass’s snapshot, so it gets no production step in that pass. An existing target can come later in the snapshot and process the credited people in its own step. If its step already ran, the people wait until the next pass.

Stopping turns the run setting off and keeps the target and everyone already converted. There is no conversion queue, no reversal, no separate cancellation refund and no conversion progress counter. With no target set, the production step does not run conversion. Zero capacity or zero output gives a zero transfer. An empty surface gives a zero transfer even when orbital inhabitants meet the outer total population condition. A colony with no total population skips that whole part of the step. None of these conditions turns the run setting off.

When the whole surface population is converted, the source is left with zero surface population. The step does not clear its target, stop conversion, move its infrastructure, delete the colony or log a conversion-completed event. Any later colony cleanup is a separate rule of the colony lifecycle. If the stored target is by accident the source species itself, the same-body lookup can return the source record. The addition runs first and the subtraction then reads the increased amount, which leaves the surface count unchanged.

The Economics window’s population summary refresh recalculates workforce and efficiency, the output modifier and the genetic rate without advancing time. The genetic modification panel shows “Genetic Modification Centres” with the whole-number centre capacity. When the run setting is on, it shows “Annual Modification Rate” with the adjusted rate in millions, otherwise 0m, and it sets the button to Stop or Start to match. It shows the running rate even when no target is set. The Annual Genetic Conversion Rate row of the second summary list on the Summary tab appears when N is above 0 and shows only N x FCT_Race.GeneticConversionRate. It omits the production output modifier and the run setting. These two displayed rates can disagree, and both follow the formulas as stated.

Saving and loading keeps the species design, not only its research status. Saving replaces the game’s FCT_Species and FCT_KnownSpecies rows. Each species row stores SpeciesID, TechSystemID, HomeworldID, the parent DerivedSpeciesID, SpeciesName, the image (RacePic), the breathable gas (BreatheID), the environmental ideals and deviations (Oxygen, OxyDev, Temperature, TempDev, Gravity, GravDev), the maximum pressure (PressMax), the seven social attributes, the four modifiers, SpecialNPRID and GraduationAge. Which races know the species is written to FCT_KnownSpecies separately. Minimum and maximum environment values are not saved. Loading rebuilds them as ideal plus or minus deviation, starts each species with no knowing races until FCT_KnownSpecies loads, and resolves parent IDs in a second pass. A DerivedSpeciesID of 0 means no parent. A parent ID that matches no species gives no parent, and an ID equal to the species’ own ID makes it its own parent. A species row with an unknown breathable gas ID is not loaded.

When a game loads, each species is linked to its research project through TechSystemID as the technology definitions load. A missing definition leaves the species without a project. FCT_TechSystem holds the race-designed project and FCT_RaceTech holds the race’s knowledge row with its Obsolete flag. This is separate from FCT_KnownSpecies, which is not the knowledge test the Target Species list uses.

Population rows store the current species (SpeciesID), the surface population (Population), GeneticProdStatus and GenModSpeciesID (0 when no target is set), as well as the ordinary colony state. Loading resolves a target only when its species ID exists, and it restores the run setting and the surface amount. The genetic modification rate is recalculated, not saved as a progress balance. The race’s GeneticConversionRate is saved and loaded with FCT_Race. Stopped conversions, running conversions and partly converted same-body colonies therefore survive save and load as separate records. Reloading does not repair the mismatch between the designer and the Target Species list.

These examples use invented values.

Take O = .2 atm, Od = .1, G = 1, Gd = .3, T = 288 K and Td = 20. Select oxygen multiplier .5, gravity multiplier 1.5, temperature shift -8 and range addition +3. The new oxygen is .1 with deviation .05, so its range is .05 to .15 atm. Gravity is 1.5 with ratio .3 and deviation .45, so its range is 1.05 to 1.95 G. Temperature is 280 K with deviation 23, giving 257 to 303 K. The new species keeps the maximum pressure, the breathable gas and all four source economic and demographic modifiers. Four input costs totalling 20,005 give 2000.5, which rounds to 2000 RP. A total of 20,015 gives 2001.5, which lies between 2001 and 2002 and rounds to the even 2002 RP. This shows half-to-even rounding of the development cost, not truncation of the quotient.

A source with oxygen 2 and deviation 1, with oxygen multiplier 2 selected, produces ideal 4 and raw deviation 2. The absolute cap makes its deviation .9, hence the range 3.1 to 4.9. A source with gravity 1 and deviation 1, with gravity multiplier 2 selected, first has its ratio capped from 1 to .975. It then gets ideal 2 and deviation 1.95, hence the range .05 to 3.95 G. The gravity deviation is not capped at .975 G.

Suppose the weighted centre capacity is 3.9, the race rate is .5 and the complete source production modifier is .8. Capacity truncates to 3. The adjusted output is 3 x .5 x .8 = 1.2 million per year. A quarter-year converts .3 million. If the source has .2 million after growth, the step transfers only .2. A target with .7 then has .9 and the source has zero. The run setting stays on. The Summary tab can show 1.5 while the running panel shows 1.2, because the Summary tab row omits the .8 modifier.

Designed and researched does not imply selectable

Section titled “Designed and researched does not imply selectable”

Create species B from source A. B has A as its parent, and its project becomes known after research. The Target Species list asks whether B’s parent is B. That is false, so B is still left out. A saved species C whose DerivedSpeciesID equals its own ID can pass the self-parent condition after loading, when it has a linked project the race knows. The conversion step, given B directly as the target, would not apply this list restriction.

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