Aurora records alien contact, communication, diplomacy and intelligence separately for each viewing race. This page covers sensor and colony intelligence, remembered ship and class observations, species knowledge, prisoners, ground-force estimates, technology gained through sharing or capture, and territorial messages. Player-facing knowledge is the main concern. NPR rules appear where they decide what a player meets or where an NPR follows a different path.

The central distinction is between an observer’s diplomatic stance and the evidence that observer has collected. These stores change independently:

Store Meaning
Contact status (FCT_AlienRace.ContactStatus) Directional classification such as Hostile, Neutral, Friendly or Allied. It is one of a fixed list of states, not a point balance.
Communication status and communication modifier (CommStatus, CommModifier) Translation state and accumulated score adjustment. Established communication is separate from friendship.
Diplomatic points (DiplomaticPoints) One race’s opinion of another. They feed policy visibility, NPR grants and hostility.
Sensor tracks, known hulls and known classes (FCT_Contacts, FCT_AlienShip, FCT_AlienClass) Live sensor track, remembered history of an individual hull and observed class capabilities. Losing a track does not erase all knowledge.
Alien sensor intelligence points (FCT_AlienRaceSensor.IntelligencePoints) Shared intelligence about an actual sensor design. The detailed display has its own threshold.
Colony intelligence points (FCT_AlienPopulation) Current and maximum colony intelligence, plus remembered counts and flags.
Race intelligence points (AlienRaceIntelligencePoints) A spending pool for random discoveries, including technology, surveys, classes and relations.
Species knowledge status and species association (FCT_KnownSpecies, FCT_AlienRaceSpecies) Environmental knowledge status, as opposed to the association of a species with a known race.
Ground-class observation counters (FCT_AlienGroundUnitClass) Hits, penetrations and losses observed, with separate reveal thresholds and a weapons-known flag.

The game keeps these records distinct when it creates and updates them. The stored number 2 means Friendly in contact status and Communication Established in communication status.

Each alien-race record has a subject race and an observing race (the viewing race). A record owned by A with subject B stores A’s contact classification of B, A’s translation state and progress, A’s diplomatic opinion of B and A’s grants to B. B’s record about A is independent. When a race first detects another, the new record takes the detected race as its subject and the detecting race as its observer.

Contact status, communication status, diplomatic points, communication modifier and race intelligence points are separate values. Diplomatic points are neither the contact status code nor the race-intelligence spending pool. The communication modifier is an accumulated translation score adjustment, not a percentage. The first-detected time (FirstDetected) and the communication-established time (CommEstablished) are game-time seconds. A year is 31,536,000 seconds.

Contact status code Status
0 Hostile
1 Neutral
2 Friendly
3 Allied
4 Civilian
5 None
6 Combat

The ordinary policy radio buttons offer Hostile, Neutral, Friendly and Allied. Civilian, None and Combat are additional classifications, not diplomatic progression levels. A contact’s status reads as None when the subject race or the observer’s record is missing.

Communication status code Display name
0 No Communication
1 Attempting Communication
2 Communication Established
3 Communication Impossible

A contact’s communication status reads as Communication Impossible when the subject race or the record is missing. That fallback does not prove that a translation attempt actually failed.

The Intelligence window’s Diplomacy Rating comes from the selected owned record. Alien Race Treaties and Military Cooperation are read from the reciprocal record. The policy controls change the grants and status of the owned record. If the reciprocal record is missing, incoming cooperation shows Unknown, trade shows None, and survey and research data are unavailable.

Creating a contact record sets its first-detected time to the current time. The setup rules apply in order. A full-intelligence bootstrap comes first. Otherwise ordinary setup requires the viewing race to be a standard race (SpecialNPRID 0, not one of the special races) whose primary species has a Xenophobia other than 100. The last rule makes the relation hostile and communication impossible even for otherwise familiar subjects. These rules set the starting state directly. They are not the later point-threshold rules.

Setup case Status Communication Initial points Identification
Full-intelligence bootstrap Neutral Established 0 Actual race title, portrait shown, real class names
Own race, ordinary setup Allied Established 10000 Actual race title, portrait shown, real class names
Foreign race on the same capital body, ordinary setup Neutral Established 40 Actual race title, portrait shown, real class names
Ordinary foreign contact Neutral Attempting 0 Placeholder name made of the system name, “Aliens #” and the race ID, real class names off
NPR hostile first-contact roll succeeds Hostile Attempting -1000 Same unknown-name setup
Viewing race is a special race, or its primary species has Xenophobia 100 Hostile Impossible -1000 Placeholder name based on the system

The NPR hostility roll applies only when the NPR’s primary species has both Xenophobia and Militancy above 50. The roll succeeds when d100 < Xenophobia + Militancy - 100. With Xenophobia 80 and Militancy 80, rolls 1 to 59 succeed. That is 59%, not 60%, because the comparison is strict.

While the game truce runs (FCT_Game.TruceCountdown above 0), the relationship is fixed (FixedRelationship 1) for races on the same capital body. It is also fixed for ordinary foreign contacts whose capital bodies lie in the same system. In that second case the game first tries to give each race a capital population if it lacks one.

Bootstrap supplies the species found on the target’s populations, the target’s known systems, full ship-class data and tracked hulls, colony current and maximum intelligence of 600, and ground-class observations of 100 for each observation counter. It creates the established state but does not set the communication-established time. A natural successful attempt sets that time separately.

Species associations created by bootstrap do not by themselves create species knowledge status or autopsy knowledge. The colony intelligence of 600 does not immediately refresh the colony’s stored installation counts. Colony and race intelligence separates eligibility from refreshed information.

Timing, fixed relationships and trait values

Section titled “Timing, fixed relationships and trait values”

The strategic update of each construction cycle runs communication attempts first, then the truce countdown and the clearing of fixed relationships, then diplomatic point accumulation, then treaty and status threshold processing. Diplomacy scales by elapsed seconds divided by 31,536,000 seconds per year. Communication progress awards apply once per qualifying update and have no elapsed-time factor. A successful communication can therefore unlock the annual point update and threshold changes later in the same strategic cycle.

The truce countdown acts only while it is above 0. It subtracts the elapsed seconds. It clears every fixed-relationship flag only if the result is strictly below 0, and then resets the countdown to 0. When the countdown reaches exactly 0, the update stops before clearing, and later updates see a countdown that is not above 0. The fixed flags then remain unless something else changes them.

A fixed relationship suppresses the ordinary annual point updates and the diplomatic-point part of communication progress, success and failure. Translation itself can continue. Threshold processing does not check the fixed flag, so a fixed relationship does not protect existing grants or status from revocation or downgrade below a threshold.

The trait formulas below use the race’s personality trait values. Special races use Xenophobia 100 and Translation -25. For a standard race the value always comes from one species, the race’s primary imperial species taken from its Imperial Population colonies. A race with no such species uses 50. No population weighting across colonies applies. First-contact hostility instead uses the species of the race’s capital population, or the first species of its Imperial Population colonies when it has no capital population.

Both mission checks intersect the systems that hold current contacts in each direction. A contact counts when the detecting race and the contact race match the pair, the contact was updated at the current game time, and it is a ship or population contact. A detection of some other ship or colony in the system can qualify the system. The ship carrying the diplomacy module need not itself be detected. When no system holds current contacts in both directions, the mission value is 0.

For A’s record about B, the diplomacy mission looks at B’s ships in qualifying systems that carry an undamaged Diplomacy Module with positive capacity. It picks the ship commander with the highest Diplomacy multiplier and uses that multiplier. For A’s record about B, the communication mission looks at A’s module ships and the highest Communications multiplier. Several ships, modules and commanders do not add together. Module eligibility uses component capacity with commander bonuses turned off. Mission output does not scale with module quantity, crew ratio or administrative command bonuses.

With mutual contacts but no module ship with a commander, the mission value is 1. A module is therefore needed for a positive commander mission bonus, but communication can still progress without a module, at reduced progress, and mutual detection alone suppresses diplomacy decay even when no diplomatic ship is present. A commander without a percentage bonus counts as multiplier 1.

Ordinary point updates require different viewing and subject races, both standard races, no fixed relationship (FixedRelationship 0) and Communication Established on the owned record. They apply to player and ordinary NPR records. Let X be the record holder’s racial Xenophobia and y the elapsed years.

The grants and status that the subject race gives the holder in its reciprocal record raise the holder’s opinion at the annual rates below. Each rate is multiplied by (1 - X/100) x y. The contributions add together, except that Friendly and Allied are alternative statuses. These contributions need no mutual detection.

Grant or status received Base points per year
Trade access (TradeTreaty) 100
Geological survey data (GeoTreaty) 100
Gravitational survey data (GravTreaty) 100
Research data (TechTreaty) 200
Friendly 100
Allied 200

A diplomatic mission multiplier m above 1 adds ((m - 1) x 4 + 1) x 100 x (1 - X/100) x y points. With the commander bonus fraction b = m - 1, this is (1 + 4b) x 100 x (1 - X/100) x y. With a +20% Diplomacy commander and X = 40, the mission earns 108 points per year. With m = 1 there is no mission gain.

When the mission value is 0, after the incoming-grant contributions, positive points lose X x y and negative points gain (100 - X) x y, stopping at zero. A mission value of 1 prevents this decay or recovery even though it supplies no mission gain. Because grant contributions apply first, a relation without current mutual detections can still improve or worsen by the net of the grant contributions and the drift. This update applies no general upper cap.

A diplomatic mission with a bonus can reveal its origin to the recipient. If the recipient has a current contact on the mission ship and knows its class, that class is flagged as a diplomatic ship (FCT_AlienClass.DiplomaticShip) and the event names the ambassador. If the recipient has no current contact on the ship, the event gives the location instead, and an NPR recipient also marks that location as an urgent point of interest unless it lies within 10,000,000 km of a banned body.

The relevant modules and commander bonuses have their own IDs and base values.

Item ID Values in the game database as shipped
ELINT component type 66 Component strengths shown below
Diplomacy component type 67 30 HS = 1500 tons, 300 BP, 50 crew, 150 Corbomite, 75 Mercassium, 75 Uridium
ELINT technology type 242 Electronic Intelligence and Analysis Module
Diplomacy technology type 243 Diplomacy Module
Alien Autopsy technology type 197 Species-specific project costs 1000 RP
Diplomacy commander bonus 17 Percentage multiplier, maximum 1.5 = +50%
Communications commander bonus 22 Percentage multiplier, maximum 1.5 = +50%
Intelligence commander bonus 23 Percentage multiplier, maximum 1.5 = +50%

Commander bonuses act as multipliers. A value of 1.2 means +20%, and a commander without a percentage bonus counts as 1. The maximum of 1.5 is the MaximumBonus value in DIM_CommanderBonusType.

ELINT strength Research cost RP Module size HS Module cost BP Crew
5 2000 10 100 15
6 4000 10 120 15
8 8000 10 160 15
11 15000 10 220 15
14 30000 10 280 15

These are the five generic ELINT technologies and components in the game database as shipped (FCT_TechSystem, FCT_ShipDesignComponents). Strength affects interception range, while the accumulation formulas in ELINT reach and sensor intelligence supply the point rate.

Each strategic update takes a snapshot of every record that is Attempting Communication when the update starts. A race’s attempt on its own record establishes at once, stamps the current time and shows the portrait. A foreign attempt requires a nonzero communication mission value and is skipped when the value is 0. When the reciprocal record is missing, or its status is No Communication or Communication Impossible, the attempt logs that communication is stalled because the other race is refusing to exchange information.

For a qualifying attempt the score is:

R = d100
  + communication modifier
  + floor((Translation of A + Translation of B) / 2)
  - 50 if the subject is a special race
  + 20 if both races have the same primary species

The die is a whole number from 1 to 100. The commander does not modify R. Positive progress uses M, the best Communications multiplier, except that exactly 1 becomes 0.5. Progress is not scaled by elapsed seconds.

Score R Outcome Communication modifier change
R >= 100 Established No reset or change
90 < R < 100 Significant progress +10M
80 < R <= 90 Moderate progress +5M
70 < R <= 80 Minor progress +3M
50 < R <= 70 Minimal progress +2M
25 < R <= 50 Very limited progress +M
0 < R <= 25 Struggling to make a breakthrough -1
-25 < R <= 0 Considering that communication may prove impossible -2
-50 < R <= -25 Advising that communication may prove impossible -3
R <= -50 Impossible -500

Ordinary signed progress changes only the communication modifier of the attempting record. It adds the same signed amount to that record’s diplomatic points unless the relationship is fixed. Negative progress is not multiplied by M.

Natural success sets both directional records to Communication Established and sets both communication-established times to the current time. It shows both portraits and replaces both placeholder names with the actual race titles. It adds 10 diplomatic points to each record independently if that record is not fixed. It does not zero the accumulated communication modifier. Natural failure sets only the attempting record to Communication Impossible. It subtracts 500 from that record’s communication modifier, and it subtracts 100 diplomatic points if the record is not fixed. The reciprocal record is not set to Communication Impossible.

Snapshot edge case. The update does not recheck the current status of each attempting record while it works through the snapshot. If both sides start as Attempting, the first success sets both to Established, but the second side stays in the snapshot and still rolls, because an Established reciprocal record passes the reciprocal-status check. This can give an additional progress, success or failure result in the same update. Processing does not always stop for both sides after the first success.

A communication mission with a bonus reveals its ship’s signal origin to the other race and may flag the detected class as a diplomatic ship. Without a qualifying bonus, the 0.5 progress path does not reveal the origin.

The Communicate button changes only No Communication to Attempting Communication. It refuses attempts already under way, Communication Impossible and Communication Established. It does not reset the communication modifier or offer a retry from Communication Impossible. The force-establish command sets the selected record to Communication Established without the timestamps on both sides, the naming, the portraits or the +10 awards. These direct window actions differ from natural success.

Treaty thresholds and player policy controls

Section titled “Treaty thresholds and player policy controls”
Policy Point threshold
Hostility boundary -100
Trade access 200
Geological data 800
Friendly 800
Gravitational data 2400
Allied 4000
Research data 6000

These thresholds are independent of the status code numbers.

Threshold processing revokes existing treaty grants strictly below their threshold for all records. Allied drops to Friendly below 4000, then Friendly drops to Neutral below 800. The second step sees the first step’s changes, so an Allied record below 800 can become Neutral in the same update. These losses do not require Communication Established, a standard race, an NPR or an unfixed relationship. Equality keeps the current grant or status. The race that loses access receives a Diplomacy event, for example that the other race has revoked its trade access.

Automatic grants and promotions require the record holder to be an NPR and points strictly above the threshold. NPR records that are not Hostile become Hostile below -100. Hostile records become Neutral above -100. Neutral becomes Friendly above 800. Friendly becomes Allied above 4000. The steps run in sequence, so several promotions can happen in one update. These automatic transitions do not check special-race type, fixed state or communication.

For players, policy choices are explicit window actions. The policy controls hide the treaty, Friendly and Allied options only below their thresholds, so equality makes an option visible. The visibility checks use the player’s owned record and do not test Communication Established. The controls set grants and status directly when a record is selected. They do not separately enforce point thresholds or reciprocal acceptance. Granting A-to-B access does not set B-to-A access.

Automatic promotion messages describe Friendly as letting the promoted race use the granting race’s jump ships stationed at jump points, and Allied as point-blank fire protection under missile attack. These describe the messages only. Jump support has its own conditions. The fleet’s check for available foreign jump drives uses Allied records, with further location, system, usability, sensor-delay and jump-size conditions.

The foreign-drive list is built from the transiting race’s own Allied records. A preliminary search for drives on the same side uses the exact system survey record, with no race or status filter. Later foreign-support checks also require usable drives, a matching location and survey, and enough jump coverage. Friendly promotion wording therefore gives no mechanical access, and Allied status alone does not guarantee a supported transit. Standard transit and transit-and-divide use this coverage check. Jump gate travel bypasses it.

Setting a survey treaty grant only toggles a flag. It does not backfill past survey data. When grantor A completes a body survey, the result goes to each subject B of A’s geological survey grants (GeoTreaty) only if B already knows the system and has not surveyed the body. The body is then marked surveyed for B. Mineral, ruin reports appear only when the body has mineral deposits. The body can still be marked surveyed with no deposits.

Gravitational sharing likewise requires the recipient to know the system already and not to have surveyed this location. It marks the location surveyed, charts jump points from that location and checks whether the gravitational survey of the system is complete. A grant does not import unknown systems. Sharing and imported knowledge covers survey imports in general.

When a race completes a generic technology (one not specific to a race, RaceID 0) with follow-on updates enabled, the technology also goes to every race to which the completing race grants research data (TechTreaty). The recipient completes the technology directly. It does not receive research points. A recipient that already knows the technology stops there, which also bounds sharing back and forth. The transfer does not demand current mutual detection or check communication or prerequisites.

Additional lower-tech transfers happen only when the technology type of the completed technology has DistributeLowerTech set in DIM_TechType:

Recipient condition in the grantor’s owned record Candidate and cost limit
Allied, no research data grant The cheapest technology of the same type that the recipient does not know and that is not automatic research. Its cost must be strictly below the new technology’s cost.
Trade access, no research data grant, status Hostile, Neutral or Friendly The same candidate. Its cost must be strictly below the new technology’s cost divided by 3 in whole numbers.
Neither grant, status Neutral or Friendly, capitals on the same body The same one-third rule.

The one-third limit uses whole-number division of DevelopCost. A new cost of 100 permits candidates below 33, not below 33.333. Each rule selects one candidate per qualifying recipient per triggering completion. Completions passed on this way keep follow-on updates enabled and can trigger further sharing. The selection does not restrict candidates to generic technologies, and it does not filter by prerequisites or NoTechScan. The tighter eligibility of random intelligence rewards does not apply to treaty sharing. Completion cascades and external research covers research completion in general.

Sensor tracks and remembered hull histories

Section titled “Sensor tracks and remembered hull histories”

Intelligence is stored per viewing race. A live sensor track, the history of an individual hull, a class capability record and the alien-race sensor catalogue are separate records. Losing or expiring a track does not erase class knowledge or hull knowledge kept in the other records. Contacts and remembered intelligence covers how these appear on screen.

Contact creation, renewal and historical tracks

Section titled “Contact creation, renewal and historical tracks”

A ship detection normally reuses a track that matches the detecting race, the actual ship and the detection method. An active-sensor emission track also matches the emitting sensor’s strength x resolution and its resolution. Several sensor emission profiles from one ship can therefore produce separate EM tracks. Each new track gets its own UniqueID, while ContactID identifies the underlying ship.

Each update refreshes the coordinates, system, speed and last-update time (LastUpdate). If the old last-update time equals the current game time minus the sub-pulse length, the continuous contact time (ContinualContactTime) grows by the sub-pulse length. Otherwise continuity resets to 0, the reestablished time (Reestablished) becomes the current time, and the track’s starting point for its latest movement resets to the ship’s position. A system change also resets that starting point. These times are game-time seconds.

A track is current when its last-update time equals the current game time. The game’s current-contact checks use this exact equality, and one of the two checks also leaves out transponder tracks. Lookups filtered by age instead accept a last-update time no earlier than the current time minus the allowed contact age. That is not the same as current detection.

Tracks are removed only when their last-update time is earlier than the current time minus one game year (31,536,000 seconds). A track exactly one game year old survives. Purging removes the track, not the separate known ship and class records.

The contact display text gathers active, thermal, shield, matching EM and transponder tracks within the requested age limit. The speed and course shown come from the active detection if there is one, otherwise from the first other method that qualifies. The freshness state of the display, which is not saved, is Current when all included tracks are current, Partial when current and stale tracks coexist, and Lost when stale tracks exist and none is current. With no counted tracks it defaults to Current, and that default does not prove detection. The trailing speed is the ship’s actual current speed, not the speed stored on a historic track.

When a follow-contact move order points at a stale track, the game redirects it to another current track of the same ship for the same observer. This keeps continuity when the detection method changes. If no current replacement exists, player fleets do not get the search waypoints that NPR fleets create.

The new-contact notification pass picks tracks whose notification flag (FCT_Contacts.Msg) is not set and whose creation or reestablishment time equals the current time. It sets the flag before deciding on the message. Consecutive tracks from the same ship and detecting race are reported as one message, even when their contact types differ. Existing older tracks of the same object, type and observer decide between Updated and New. Civilian notifications are suppressed. Transient explosion, EW and secondary contacts use the combat event path.

Ship detection sends further direct messages. A changed strength on a noncivilian track logs an update, and zero continuity can log contact reestablishment if no different method for the same ship is already current. These direct messages do not depend on the notification flag. Setting the reestablished time does not reset the notification flag, which is saved and restored as FCT_Contacts.Msg. Reestablishment therefore does not guarantee that the notification pass sends another message.

Linking a track to class and hull knowledge

Section titled “Linking a track to class and hull knowledge”

When a ship is detected, the observer gets an alien-race record if it lacks one, finds or creates its record of the actual ship class, updates its observations of that class, then finds or creates the individual ship record. First discovery raises that class’s discovered-ship count (ShipCount) and records the first-detected time. Unless real class names are on (RealClassNames 1), ship names use the observer’s designation for that class plus a zero-padded discovery number, and ordinary class discovery starts with the unknown hull description.

Each ship observation stores the current game time, the fleet’s actual system and coordinates and its speed. The first observation of that alien race in a system adds the system to the race’s known alien systems (FCT_AlienSystem), sends an intelligence event and can apply the system’s automatic protection setting (FCT_RaceSysSurvey.AutoProtectionStatus). Later detections do not repeat that first-system event.

A ship class’s details window lists the tracked hulls. Destroyed takes precedence, with (S) for salvaged wrecks. Otherwise a last-contact time equal to the current time shows Current Contact, and stale observations show the last-contact date. The ship count is the number this observer has discovered, not the foreign empire’s actual fleet total.

ELINT reach, source selection and accumulation

Section titled “ELINT reach, source selection and accumulation”

A ship with an ELINT strength above 0 provides both a passive EM sensor and an ELINT sensor. The ELINT sensor uses that strength and the ship commander’s Intelligence multiplier, or 1 with no commander. Strength changes reach. The commander multiplier changes point gain.

Sensor checks use this interception formula:

interception range (km) = 250,000 x sqrt(ELINT strength x target emission signature)
ship active-sensor emission signature = max(1, sensor strength x sensor resolution)
interception succeeds when distance (km) <= interception range

The boundary is inclusive, because only a range smaller than the distance fails. Ship ELINT applies to active sensor emissions, not to shield emissions, when it awards points. Colony ELINT uses the colony’s actual EM signature in the same range formula and requires that signature to be nonzero. The detection equations use the same 250,000 km range multiplier.

Before the checks, the game removes duplicate ELINT sensors with equal observer, system, strength and position, then keeps only the strongest ELINT strength at each observer, system and position. This is not selection by best commander. Equal-strength duplicates keep the first one. Sensors at different locations are not sorted by commander bonus. The first one in range supplies the award and the search stops. Several ships therefore do not earn parallel awards for the same catalogue record at one time.

Normal sensor processing considers foreign ships in systems marked for checks. It leaves docked ships and ships assigned to a mothership out of its normal ship list, and it skips ship processing when only new missile launches are being checked. A system is marked for checks when more than one race is present and its NoSensorChecks value in FCT_System is 0. A special pass for jump transits can stop after finding one transiting detection, so that pass does not classify every signature aboard every transiting ship.

Sensor intelligence catalogue and display gates

Section titled “Sensor intelligence catalogue and display gates”

An alien sensor record is keyed by the actual sensor component inside the target race’s catalogue. The shared record links to each observed class that uses that component. Creation records strength, resolution, range and the actual component at once, starts the intelligence points at 0 and gives an AS designation. Salvage and espionage use an equivalent record created from the component.

Sensor ELINT first requires an already known class for the emitting ship. It then awards at most once per catalogue record per game time:

sensor intelligence points += sub-pulse length (seconds) / 86,400 x Intelligence multiplier

This sensor award has no communication reduction. When the previous points are below 100 and the new points reach 100 or more, the record copies the actual resolution and the actual maximum sensor range, truncated to a whole number, and the ELINT classification event runs. No cap or decay appears in this award.

The sensor name and the ship class details window reveal detailed range and resolution only above 100 points. At exactly 100 the classification event has already run, but the ordinary display can still show GPS = strength x resolution. Above the gate the window reads the actual component’s maximum sensor range, not the stored range. Range is displayed in millions of kilometres. The game stores the true sensor from the start, but its true range and resolution are not player knowledge until the 100-point gate is passed.

EM contact labels match a sensor profile by strength product plus resolution, while catalogue identity uses the actual component. Different components with the same product and resolution can therefore match the first profile.

Full class revelation sets its active-sensor entries to 500 points. The random race-intelligence sensor reward adds 200 points to a randomly chosen researched active-sensor design of the target race. It is not restricted to sensors that are emitting or still unknown, and it does not attach the new record to a class.

Colony intelligence records are specific to each observer and create the race contact as needed. A new colony record takes the observer’s name for the system body, not the colony’s actual name. A thermal population contact updates the stored thermal signature. The population emission path uses the Shield contact method to update the EM signature. These are the latest assigned strengths, not the highest ever measured. The first known presence in a system also adds the system to the alien race’s known-system list.

Colony ELINT awards at most once to a colony record at a given game time. Let s be the sub-pulse length in seconds, I the Intelligence multiplier, X the actual Xenophobia of the colony’s species and P the colony’s total population in millions:

base = s / 86,400 x I x (100 - X) / 100
colony gain = base with Communication Established, otherwise base / 5
race gain input = base x min(1, P / 100)

The race gain is also divided by five without established communication. Colony and race awards therefore both receive the reduction before translation. The population scaling reaches full race contribution at 100 million inhabitants. Colony gain itself has no population-size factor. I is a multiplier, such as 1.2 for +20%, not a percentage.

A new high in current points moves the old maximum into the previous maximum (FCT_AlienPopulation.PreviousMaxIntelligence) and sets the maximum (MaxIntelligence) to the current points. Current points strictly above 100 refresh the colony intelligence and show the race portrait. The last-intelligence-update time is set even when the computed gain is 0.

The colony refresh uses these strict comparisons:

Current colony intelligence points Actual data refreshed
>100 Total population, and the sum of installations whose unit cost is above 6, as a whole number
>200 Construction, ordnance and fighter factory count, mine, automated mine and civilian mining complex count, spaceport and cargo shuttle station presence
>300 Fuel refinery and maintenance facility counts, refuelling and ordnance transfer station presence
>500 Research lab and ground force construction complex counts, naval headquarters and sector command presence

Equality does not unlock or refresh a tier. Counts are reassigned whenever their tier qualifies. Presence flags are set when the installation is present but this refresh never clears them. Each tier’s first-crossing event tests whether the previous maximum was strictly below the threshold. Reaching exactly a threshold and only later exceeding it can miss that tier’s first-crossing message. Planetary installation catalogue lists the installations.

The Intelligence panel shows a tier if either current or maximum-ever points strictly exceed it. Values show light green when current points qualify and red when only the historical maximum qualifies. Stored counts therefore stay visible after decay but describe the last qualifying refresh. Sticky presence flags can also outlive the actual installation. The panel shows current and maximum points separately.

Colony intelligence decays for records with positive current points whose last-intelligence-update time is earlier than the current time. The decay runs once per increment over the increment’s length:

new points = old points x (1 - 0.25 x elapsed seconds / 31,536,000)

A single interval of one year therefore removes 0.25 of the current points. It does not change the maximum, erase saved observations or stop at zero for exceptionally long intervals. A current contact alone does not prevent decay, because the test uses the time of the last ELINT award.

Full-intelligence bootstrap sets colony current and maximum points to 600 but does not run the colony refresh. That gives eligibility, and bootstrap does not by itself fill the installation counts. Ground classes in the same bootstrap receive 100 in all three observation counters.

Population transfer and captured colony intelligence

Section titled “Population transfer and captured colony intelligence”

When a colony changes hands and its original race differs from the new owner, the new owner records species discovery for the old owner’s race. The portrait is revealed only when the surface population amount is above 0. The discovery happens even for an empty colony, before the game replaces that colony’s species with the new owner’s primary species. Population control transfer covers the rest of the handover.

For other observers of a transferred colony, the colony record is kept and pointed at the new owner only when the observer has a population contact at the current time and already knows the new owning race. Otherwise the record is removed. Kept records receive a transfer event and point to the observer’s record of the new owner. All population contacts for the colony are then removed.

Race intelligence pool and random discoveries

Section titled “Race intelligence pool and random discoveries”

A race intelligence gain is divided by five when communication is not established, then added to the race intelligence pool (AlienRaceIntelligencePoints). When the pool is above 100, the gain subtracts 100 and tries to grant a reward. Each gain checks the pool once, so one large gain can trigger only one reward. The attempt makes up to three d7 selections and stops at the first eligible result. The 100 points are spent even if none of the three selections succeeds.

d7 Possible race-intelligence reward
1 Complete one unknown generic technology known by the target, with both prerequisites satisfied
2 Import full gravitational survey information for an eligible system
3 Import full geological survey information for an eligible system
4 Obtain a ship-class summary, which may reveal a previously unknown class
5 Obtain knowledge of a previously unknown system
6 Add 200 points to an alien active sensor
7 Learn the target’s relationship with another race

The three d7 choices have no priority or distinctness rule. A failed category can come up again in the same attempt. Eligibility is more specific than the short labels:

  • Technology. The game chooses at random among generic technologies that the target has researched and the observer does not know, where each prerequisite is either absent or already among the observer’s known generic technologies. Obsolete technologies remain eligible. This selection applies no NoTechScan, AutomaticResearch, RuinOnly or cost filter. Research completes with follow-on updates enabled.
  • Gravitational or geological surveys. The observer must already know the system and have an incomplete survey. The target must have that survey complete. Geological selection also requires at least one body that is not a comet, and it surveys the system without generating minerals. Gravitational selection completes the gravitational survey. These rewards differ from discovery of a new system.
  • New system. The game chooses from systems the target knows and the observer does not. It imports the target’s name for the system and the target’s charted and explored flags for each jump point.
  • Relationship report. The game chooses any of the target’s alien contacts except its record for the observer. Self-contact is not excluded separately. An unknown third party stays unnamed and appears as an unknown race. The point bands below classify the report. They do not assign contact status.

The seven selections have equal chance per roll, but successful rewards need not be equally likely, because eligibility differs. The relationship report turns the target’s diplomatic points into these bands, which are separate from the automatic status-transition comparisons:

Target’s diplomatic points Reported relationship
Below -100 At war
-100 to below 0 Negative
0 to below 200 Neutral
200 to below 800 Positive
800 to below 4000 Friendly
4000 or above Allied

Ship class observations and full revelation

Section titled “Ship class observations and full revelation”

Contact observations keep the highest values seen for each class:

Contact or observation Stored result Boundary
Active ship track TCS = highest contact strength Updates only when the strength is above the stored TCS
Thermal track ThermalSignature = highest contact strength Updates only on a larger value
Moving thermal contact Military or Commercial engines, from the ship class’s actual military-engines flag (MilitaryEngines) Speed above 1 km/s and engine type still None
Shield track ShieldStrength = contact strength / 30 Strength above 30 x stored shield strength
Any contact method MaxSpeed = highest contact speed Updates only on a larger speed

The window labels TCS x 50 as Active Sensor Signature (tons). This is the observed signature, not a guaranteed true hull tonnage. Shield tracks come from active shields, with a signature of current shield strength x 30, the shield EM signature multiplier. Active-sensor emissions are separate EM tracks and link to sensor catalogue entries. Thermal, EM and active target signatures covers how ships produce these signatures.

Update-order caveat. For an existing track, the observation of the ship class runs before the track’s contact strength is replaced with the new value. Speed is refreshed before the observation, but a changed strength can reach the stored class maximum one refresh later. Civilian strength changes are neither logged nor stored at that step. A new track sets its strength before its ship class is observed.

Colony EM detection also uses the Shield contact method, although the target is a population. Its ordinary passive EM detection checks that the colony’s thermal signature is nonzero before it computes range from the EM signature. The game tests the thermal value here, not the EM value. Colony ELINT tests the EM signature instead. Contact-method names alone do not say what the target is.

Beam weapon and energy point-defence intelligence groups beam attack records by firing ship and component. An observer needs an active-sensor track of the firing ship updated at the current time minus an observation offset, and an existing known hull. The offset is 0 in the ordinary fire step and equals the processing interval length in the missile movement step. Weapon amount is the shots divided by the component’s shots per weapon (NumberOfShots), as a whole number. Range is the longest observed firing range. Missile-launcher observation instead requires current active detection of a newly launched ship salvo plus prior hull knowledge. It groups the detected missiles by missile size, truncates the size to a whole number for matching and looks for an actual launcher whose component value (ComponentValue) equals that number. Missiles with fractional sizes can therefore fail this matching and count.

Each class weapon observation records the actual weapon component but keeps the observed quantity and range. Existing entries increase only on a larger count or range. Rate of fire (ROF) starts at 0 and takes a qualifying smaller nonzero whole-second interval since the last recorded firing (LastFired). Existing observations do not advance the last-fired time, so ROF is an observation artefact, not a guaranteed true reload time. The window also shows the actual point-blank beam damage and the actual shots per weapon from the stored component, beside the observed range and count.

A newly identified launcher with component size 4 or more, the anti-missile threshold, sets the role of that class to anti-missile missile. A smaller launcher sets anti-ship missile only if the role is still Unknown. A new beam weapon whose power requirement (PowerRequirement) is above 2 x recharge rate (RechargeRate) sets the fast beam role. Otherwise it sets the slow beam role only when the role is still Unknown. The comparisons are exact even though the role names are provisional.

Observed energy fire against salvos sets missile-defence knowledge for the firing class and for every already known class with a ship in the same actual fleet. Per-hull point-defence shots add up within one game time, reset at a later time and update the maximum for that class. Total shots and hits feed the displayed percentage, hits / shots x 100. When a summary for a ship and component merges several attack records, it keeps the first record’s target type, so mixed target types are not classified separately. Point-defence modes, allocation and interception covers the fire itself.

Jammer observations update sensor, fire-control or missile jammer strength only when a larger rating is seen. Each update sends an intelligence event and requires an existing class record.

Each recorded hit on a known hull adds the whole-number part of the amount to the armour or penetrating counters, keeps fractional shield damage, and always adds the full amount to damage taken (DamageTaken). This is outcome data recorded by the attacker, not a live reading of hull health. Observed armour-column damage raises that class’s armour value (ArmourStrength), which the window calls Maximum Armour Penetration. One penetration case records the column damage as armour damage while also recording the residual penetrating damage, so these historical counters do not split true physical damage exactly. Damage, shields, armour and internals covers the physical damage.

The average damage of a class is the mean over all hulls of that class known to the observer, truncated to a whole number, and destroyed hulls are not filtered out. The penetrating-damage ratio divides summed penetrating damage by summed damage taken. When known hulls have taken no damage at all, the game makes no allowance for the zero total in this ratio.

When a ship is destroyed, other races with any current track of it mark their known hull Destroyed. This does not need active detection. Attribution also checks for available active attacker or STO observations, although the check looks at all observers together, not at each observer. The intelligence event for this marking goes to the destroyed ship’s own race instead of the observing race, which affects who receives the log entry. The attacking ship or ground unit’s own destruction step separately marks its observer’s known target and sets the damaged time (GameTimeDamaged).

When a ship surrenders, the capturing race fully reveals the ship’s class and the target race portrait before the ship changes hands. This relies on class and hull intelligence that already exists. Full revelation copies the actual armour thickness, maximum speed, jump distance, shields and jammer ratings, replaces the active-sensor and weapon lists, sets active-sensor points to 500, collects the distinct positive background technologies (BGTech1 to BGTech7 of that class’s components) and builds the actual class summary. Weapon rate of fire stays 0 after this reveal.

Two details keep this from copying every actual statistic. The stored thermal signature takes that class’s passive sensor strength (PassiveSensorStrength), and TCS and engine type are not set. When a player reveals an NPR class, the game first writes the observer’s designation for that class into the actual class name, and later summaries and names use that name. Knowing background technologies means a list of observed technologies, not completion of those technologies for the observer.

The race intelligence reward that gives a class summary is narrower. It chooses a target class that is not obsolete and has no stored summary, creates a class record if needed and copies the recalculated actual summary, without full revelation. Unknown classes can be revealed this way. The observed numbers of an existing class need not be filled.

The game stores a combat role for each alien class. Values 3 and 4 have provisional names, and no rule assigns values 5 and 6.

FCT_AlienClass.AlienClassRole Role
0 Unknown
1 Anti-missile missile
2 Anti-ship missile
3 Fast beam (provisional name)
4 Slow beam (provisional name)
5 Unnamed value 5
6 Unnamed value 6

Ground-class observations and force estimates

Section titled “Ground-class observations and force estimates”

Ground combat observations leave out crew elements. The observer gets a race contact and a class record if absent, and the target element’s hits taken, armour penetrations and units lost in this combat pass to that class record. These add up per observer, alien race and actual class, with no deduplication by time.

Cumulative counter Reveal threshold Revealed data
Hits observed (Hits) >=20 Actual base type name
Armour penetrations observed (Penetrated) >=20 Actual armour strength
Units destroyed observed (Destroyed) >=20 Actual hit points

Classification events occur when the old counter is below 20 and the old plus new counter reaches 20 or more. The window also uses 20 or more, so equality unlocks ground details, unlike the strict colony thresholds.

Every combat observation also reveals weapon information, with no count requirement. The first observation sets the weapons-known flag (WeaponsKnown) even if no weapon summary can be formed. For each component with shots above 0, the revealed values are the shots, penetration x weapon strength modifier of that class, and damage x weapon strength modifier. The weapon display does not grant research. Ground classes always use their actual class name, whether real class names are on or off.

Ground combat aftermath picks elements with positive hits, penetrations or losses, or a morale change of more than 0.1. It caps hits and penetrations at the element’s unit count at that moment and caps destroyed units at the units available, then sends the observations. Every other race with ground formations on the same system body or aboard the same ship receives them, not only the attacking or hostile race. Even an element that qualifies only through a morale change can create class knowledge and the weapons-known flag. Ground combat and conquest covers the combat rounds.

The force estimate sums hostile units whose class the observer has a record for. Units of classes with no record are pooled as Unknown Unit Types. A class record is enough for a named line, and no 20-count threshold is needed. Lines with a zero count are left out.

For the observer’s consecutive combat count n on that body:

E = 200 / n, rounded to the nearest whole number, with exact halves rounded to the even neighbour
Q = 1 + d(E) / 100
estimate = true units x Q, or true units / Q, chosen at random

Each known-class line and the unknown pool gets its own random error. E is 200 after 1, 100 after 2, 50 after 4, 20 after 10 and 10 after 20. At E = 200 the factor can reach 3 or 1/3, so the label is not a symmetric plus or minus 200%. At large n, E can round to 0, and a die with 0 sides gives 0.

Force-estimate reporting uses the consecutive combat round count (FCT_RaceGroundCombat.ConsecutiveCombatRounds), which starts at one and is stored per observing race and body. The context refresh first marks earlier records inactive. It finds bodies with the race’s own population or assets, or an active planetary-combat fleet order, and hostile races with population or assets on those bodies. Existing records increase by one and become active. New records start at one.

The count increases once for each hostile race on the body. Several hostile races on the same body can therefore advance an existing count more than once in one refresh. After processing, inactive records are dropped for races that reach the final cleanup. A race with no hostile records skips that cleanup, so old counts can survive a period with no hostile relationships. The value is therefore not exactly one increment per consecutive combat round.

A ground combat round reports only when the observer has friendly formations or an active planetary-combat fleet order for the body. It then gathers the actual hostile formations using the observer’s Hostile classifications. The display is an estimate per group, not a saved exact census. At n = 400, 200 / n = 0.5, and rounding to the even neighbour gives E = 0. A ground combat intelligence report is logged only when at least one nonempty estimate is added.

Species knowledge has no colony intelligence threshold. It is a status kept per species for each observer (FCT_KnownSpecies.Status):

Status code Name Environmental panel
0 Discovered Gravity, temperature, oxygen and pressure shown as Unknown
1 Autopsied Actual environmental tolerances available
2 Fully known (provisional name) Same display as known tolerances, and the meaning of this status is provisional

With no observer entry the panel shows Species not known. Known biology shows minimum and maximum gravity in G, minimum and maximum temperature converted from Kelvin to Celsius by subtracting 273, minimum and maximum oxygen partial pressure in atmospheres, and atmospheric pressure with a minimum of 0.00 and the species’ actual maximum. This environmental panel does not reveal personality traits.

Recording species knowledge does nothing if the species is not in the game’s species list or is the viewing race’s primary species. An existing entry only rises to a higher status. Creating the first entry, at any requested status, also creates a species-specific Alien Autopsy technology named “Alien Autopsy - “ plus the species name. It costs 1000 RP, sits in the General Science category, holds the species ID in AdditionalInfo and belongs to the observer’s race. The species is also associated with the alien-race record if it is not already.

Completing an Alien Autopsy project sets the status to Autopsied directly when both the species and the observer’s knowledge entry exist. This assignment does not follow the only-rise rule and can overwrite a higher status that was set by hand.

Rescuing foreign lifepods creates or extends a survivor group aboard the chosen rescue ship, creates a race contact if needed, reveals the portrait and records Discovered species knowledge. Commanders in the pods become prisoners, not yet processed, carried by that ship. Rescue does not autopsy the species. Lifepods and captivity covers the commander side.

The Diplomacy window’s Provide Knowledge of Alien Species command lists the species living on the selected race’s own populations. It then records the chosen species, at Discovered status, in the selected race’s knowledge and in its association with the selected alien race. Taken literally, this records knowledge for the selected race. It is not a guaranteed gift to the other race.

Ship surrender creates a survivor group holding the surrendered ship’s current crew and species. The ship’s commanders become prisoners aboard that ship. Unloading prisoners at a colony merges survivors by race and species into the local prisoner groups (FCT_Prisoners), adds all crew to the prisoner count (NumPrisoners), moves carried prisoner commanders to the colony and clears the ship’s survivor groups. New groups start with zero processed prisoners (NumProcessed). No interrogation happens aboard ship on this path. Survivors, overcrowding and life support covers survivors while they are aboard.

Colony production interrogates only when the colony’s total population is at least 1 million. Player colonies also need Imperial Population political status and a positive naval headquarters capacity. That capacity is the sum of each installation’s NavalHeadquartersValue x amount, as a whole number. It is raw installation capacity, with no economic, stability or efficiency multiplier. An NPR colony that fails the imperial and headquarters test uses capacity one. Communication must be established with each prisoner’s race. Groups and commanders whose race has not been translated are skipped.

Interrogation costs no wealth, minerals, fuel or MSP. It advances the processed counts and awards race intelligence points. Processing a prisoner does not remove it from detention.

Nominal capacity per colony update is 5000 x headquarters capacity x elapsed years, truncated to a whole number, which rounds down for values that are not negative. No fractional capacity carries over. At capacity 1, a five-day update yields 68 and does not keep the remaining fraction. Groups are ordered by the captor’s contact status code toward their race, lowest first, then by unprocessed count, largest first. Groups with established communication award 0.1 race intelligence points per processed prisoner before the relationship adjustment.

When a group’s unprocessed count exceeds the capacity, the capacity is added to its processed count but is not used up afterwards. Several large groups can therefore exceed the nominal total. Smaller or equal groups subtract their unprocessed count from the remaining capacity and become fully processed.

Every unprocessed prisoner commander at the colony gets its own chance, independent of the enlisted capacity. For rank level r:

chance = headquarters capacity x 200 x elapsed years x (species Determination + species Xenophobia) / (50 x r)

Success is d100 < chance, strictly less. There is no cap and no accumulated progress per commander. The roll repeats on later updates until it succeeds. Success marks the commander processed and awards d((r+1)^3) + d((r+1)^3) points, from 2 to 2 x (r+1)^3, before the relationship adjustment. Higher Determination and Xenophobia literally raise this chance.

Captor record’s contact status toward the prisoner race Award multiplier
Hostile 1
Neutral 1/2
Friendly 1/5
Allied 1/10
Civilian 0
Other status values No further adjustment

These factors apply to both enlisted and commander awards. Enlisted events are logged only for a positive adjusted award. A successful commander always gets a conclusion event, even when the adjusted award is 0. The adjusted award then enters the race intelligence pool.

The race pool triggers only when the result is strictly above 100. It subtracts 100 and makes one random reward attempt, even if a large award leaves the pool above 100. The attempt makes up to three d7 selections and stops on success. Spent points are not refunded if none succeed. A technology selection chooses at random among generic technologies the target knows and the observer does not, whose first and second prerequisites the observer already knows, then completes research with follow-on updates enabled. Interrogation therefore feeds the general discovery pool, not a dedicated ground-technology progress meter.

The prisoner window requires a selected prisoner or group and a confirmation. It offers Execute when the captor’s status toward that race is Hostile, otherwise Release. A release when not hostile raises the prisoner race’s opinion of the captor in its reciprocal record:

Released object Reciprocal diplomatic gain
Ship survivor group Crew / 100
Colony prisoner group processed prisoners / 400 + (prisoners - processed prisoners) / 100
Commander (rank level + 1)^3, divided by 4 if already processed

Survivor and prisoner groups are removed by either action. Released commanders lose their prisoner, processed and location flags. Executed commanders retire with Executed status. These direct diplomatic additions have no translation or fixed-relationship check.

Taking a colony rescues the new owner’s commanders held there. It clears their prisoner and processed flags and reactivates them. The new owner’s enlisted prisoners add their full count to the academy crew pool (AcademyCrewmen). The rescue step itself does not remove those rescued prisoner groups.

Technology from salvage disassembly and capture

Section titled “Technology from salvage disassembly and capture”

Observing a component or a class can list background technologies without completing research. The routes below award research points or complete technology. Treaty technology transfer is covered in Future survey and technology sharing. Random race-intelligence technology rewards use their own prerequisite filter. Technology to deployment compares the ways a race acquires knowledge.

Completing a wreck salvage requires the wreck and a primary salvage ship. If the salvager already knows the wreck’s class, its stored TCS is set to the actual class size, and then the wreck technologies and components are processed. This path does not create class knowledge. Each wreck component adds recovered weapon quantities with observed range 0, links active, EM and thermal sensor components to the catalogue, and records positive component background technologies. Sensor records created here start at 0 points, so they do not cross the detailed sensor display gate. All this happens before cargo loading, so each wreck component is revealed even if cargo recovery then fails.

The salvaging race marks its known hull Salvaged. Other races with a ship or population anywhere in the wreck’s system receive a disappearance event. That list does not require a current sensor contact with the wreck.

Generating a wreck’s technology data first requires d200 <= size of the ship class in HS. It starts with threshold 128 and a first roll of 1. After each pass the threshold halves, and a new d128 must be strictly below the new threshold to continue. Each pass picks a random component of that class and a random technology of that component, and each valid technology entry receives d20 percent. When the picked component has no technology, the game reports error Function #3185 and stops generating data for that wreck. The intended fallback to the prerequisite of an automatic-research technology never applies. These rolls therefore do not guarantee usable research data.

For each wreck technology, salvage skips technologies with NoTechScan. A command-and-control technology selects that exact technology if the salvager does not know it. Other types select the cheapest technology of the same type that the salvager does not know, that is not automatic research and not ruin-only (RuinOnly), with cost <= recovered technology's cost. Awarded RP is selected cost x percentage / 100, truncated to a whole number. This selection has no prerequisite filter. The recovered technology can be added to class knowledge even when no usable RP target exists, except a command-and-control technology the salvager already knows. Player RP is stored aboard the salvage ship (FCT_ShipTechData). A standard NPR adds the RP to the research total of its capital, .

Player ships holding data, with data holding off (HoldTechData 0), hand it to an owned colony with at least one working research facility in the same system. The ship does not need to be at the colony. The colony with the most research labs receives the data. Each RP amount is applied as a whole number to its technology, and then the ship’s data list is cleared. Technical data and intact ship salvage covers the salvage operation.

Disassembly gives a separate direct research route. An unknown command-and-control technology awards floor(cost x d5 / 100) RP to that exact technology and nothing else. A known one awards nothing. Other components skip background technologies with NoTechScan and choose the cheapest unknown technology of the same type that is not automatic research and not ruin-only, with cost <= component technology's cost. Each eligible choice gets floor(selected cost x d5 / 100) RP. Each disassembly uses one stored component. The disassembly window uses the same eligibility to decide whether a component can be disassembled.

Completing an intact ship salvage first processes carried child ships, then awards disassembly research per whole class component count through the capital colony. It does not fully reveal the alien class. In the wreck salvage of an NPR , the research award runs once per unit of each component, and each run itself repeats over the same amount, so the underlying disassembly reward can run amount squared times.

The species and technology capture of a colony transfer runs only if the colony’s original race differs from the new owner. Technology capture also requires capture to be enabled for this transfer and the old owner to be a standard race (SpecialNPRID 0). Standard here is the special-race category. It does not require the defender to be a player. Eligible technologies are those the old race knows, generic, unknown to the new owner and without NoTechScan. This path does not apply the prerequisite filter of random breakthroughs and does not exclude automatic-research or ruin-only technologies.

Resulting political status Acquisition
Imperial Population Complete every eligible technology
Conquered If the raw research lab count is above 0, complete each eligible technology independently when d100 <= lab count
Other statuses No technology transfer here

At 100 or more research labs, every d100 qualifies. This roll has no population-share factor, although the game option text says the conquering race gains technology in proportion to the conquered colony’s share of the race’s population. Completed technologies name the old race as their origin, log events and run follow-on updates. These acquisitions cost no RP, wealth or minerals and use up no captured units. Political status catalogue lists the statuses.

A ground combat surrender runs this transfer with Conquered status, with technology capture when the game option for technology from conquest is on (FCT_Game.TechFromConquest nonzero). The surrender test is occupation strength >= population amount x (Determination + Militancy + Xenophobia) / 300. This is the general colony technology capture, not a separate reward for captured ground units.

Territorial protection is directional. A viewing race stores a chosen protection level against a particular alien race in a particular system. It is separate from ownership and control, diplomatic points, contact classification and communication state. The protection selector in the Intelligence and Diplomacy window updates or creates that record for the system and alien race. Selecting No Protection stores code 0 and does not necessarily remove the entry. The selector checks that an alien race and a system are selected, but it does not require communication or permanent presence.

ProtectionStatusID Description
0 No Protection
1 Suggest Leave
2 Request Leave
3 Request Leave Urgently
4 Demand Leave
5 Demand Leave With Threat

A system’s highest protection status is the highest stored code, or 0 when there is none. This maximum is not a combined diplomatic score.

Strategic update and current-presence gates

Section titled “Strategic update and current-presence gates”

In the normal construction-cycle update, only a standard NPR with NPR AI processing enabled runs territorial sovereignty diplomacy. Territory processing comes before communication attempts, the truce countdown, ordinary diplomatic point accrual and threshold processing in that cycle. A warning can therefore use the communication state from before that cycle’s translation attempts. NPR strategic planning covers how an NPR values its systems.

The territorial step converts elapsed seconds to years with 31,536,000 seconds per year and uses the NPR’s racial Xenophobia divided by 100. It requires a capital population. If the NPR has none, the game tries to give it one, but territorial processing still stops for that update.

Contacts in both directions count only when updated at the current game time. Historical tracks are not current territorial presence. Territorial contact types are population, salvo, ground unit, STO ground unit, shipyard and ship. A shipping-line ship is left out when the detecting race’s record of the ship’s race grants trade access (TradeTreaty). Other ships count. Explosions, energy impacts and packets do not count.

The claim step looks at systems where a foreign race currently detects the NPR’s qualifying territorial presence. It skips a system in these cases:

  • the NPR values the system at None
  • the foreign race has no record of the NPR, or its record is fixed (FixedRelationship 1)
  • the NPR has no record of the foreign race
  • the NPR classifies the foreign race as Hostile
  • the foreign race has no protection entry, or one at No Protection

In this first step the fixed flag is tested on the claimant’s record. A player’s claim can therefore be assessed without a translated message and without mutual detection.

For a player claimant, each qualifying assessment immediately deducts this from the NPR’s opinion of the player:

claim penalty = 2 x protection code squared x NPR system value code squared x (NPR Xenophobia / 100)

This penalty is not multiplied by elapsed years. The NPR’s general point-change rule applies the change only to an existing record, respects a fixed relationship here, reveals the portrait when it changes the record, and can make the NPR hostile at once below -100. Claim evaluation then continues in the same update. Before the response, the player receives a Diplomacy event that lists the ships, the populations and fixed assets, and the salvos detected.

Permanent presence is the sum of the claimant’s actual colony EM signatures in its survey of the system. It is not a sum of detected colony tracks only. If this is strictly below 1,000 x Xenophobia / 100, the NPR rejects the claim and removes the claimant’s protection entry against it. Equality passes this test. With Xenophobia 50, a signature of 499 fails and 500 passes. Passing alone does not guarantee acceptance. A Demand Leave claim (code 4) in a High system (value code 4) at that Xenophobia costs 2 x 16 x 16 x 0.5 = 256 points per assessment.

The claim resistance compares connected-system values with and without the contested system:

loss = (connected score before - connected score with the system set to None) / 4
resistance = loss x (Xenophobia + Militancy + Determination) / 150

The connected score starts from the NPR’s capital system and traverses explored adjacent systems, including through unstabilised jump points. It does not pass through an adjacent survey valued None. Values above Insignificant contribute their code squared. Removing a connecting system can therefore lose more than that system’s own value. If the contested value is below Low and the loss is 0, the NPR accepts without the military comparison.

For the remaining claims:

presence factor = (claimant permanent EM / 100) ^ 0.333
if the NPR's own presence EM is above 0:
    presence factor = the smaller of that value and sqrt(claimant permanent EM / NPR own presence EM)
claim strength = relative military power x sqrt(protection code) x presence factor
accept if claim strength > resistance

The exponent is exactly 0.333, not an exact cube root. The NPR’s own presence is also the sum of the actual colony signatures in its survey. The comparison is strict, and equality rejects.

Relative military power uses the NPR’s tracked hulls of the claimant that are not destroyed, have an observed speed above 1, belong to an actual class that is not commercial, and were last seen less than five game years (157,680,000 seconds) ago. It sums their actual class size in HS and is 0 when that foreign sum is 0. It multiplies the foreign tonnage by 1.5 when the NPR’s capital system differs from the claimant’s capital system, then divides by the NPR’s own tonnage of ships whose class has a maximum speed above 1 and is not commercial.

Weapon and engine technology further multiply that ratio by foreign maximum development cost / own maximum development cost, when the foreign maximum is positive. The weapon maximum scans observed weapons across all of the NPR’s known alien classes, not only the claimant’s. The engine maximum does keep to the claimant’s classes but reads their actual engine components. The own maxima scan the NPR’s whole class list, not only ships in service. If the NPR has no weapon or engine designs to compare against, the calculation fails with error Function #1 and the relative power falls back to 1.0. These inputs mix actual and observed values, so the result is not a pure player-visible intelligence measure.

Acceptance sets the NPR’s value for the system to None and its control race (FCT_RaceSysSurvey.ControlRaceID) to the claimant. The NPR’s colonies there with a population amount above 0.01 or any installation pass to the claimant as Occupied, without technology capture, wealth looting or forced ship surrender. Empty colonies are removed. Rejection removes the claimant’s protection record. Responses arrive as alien communication events in the claimant’s Intelligence category.

The protection record has no time or expiry value. Rejection removes it. Acceptance sets the system value to None, which keeps this step from reassessing the system at once. Otherwise a surviving claim can be assessed again on a later qualifying update. No cooldown or warning-message suppression applies here.

Intrusion penalties and warning recipients

Section titled “Intrusion penalties and warning recipients”

The second step covers systems whose NPR system value is strictly above Low and that hold current qualifying foreign contacts. It skips contact status codes of Allied or higher (Allied, Civilian, None and Combat), Friendly in a system below High, and fixed relationships (FixedRelationship 1). It also skips the NPR capital when the capitals of both races are in the same system.

A strong foreign permanent presence gives another exemption. The step skips the race when its colony EM in the system is greater than NPR capital EM / 10 x Xenophobia / 100 and the NPR’s own actual colony EM in this system is lower than the foreign sum. Both comparisons are strict.

The message recipient colony is the one with the largest total population among currently detected population, shipyard, ground unit and STO contacts. The candidate ship is chosen military before commercial, then by largest actual class size. If there is neither a colony nor a ship recipient, no penalty or message applies, even though a salvo can put the system in the current-contact set.

Ship presence counts each actual ship once across its sensor tracks. It leaves out shipping-line ships when the NPR grants trade access. For each class, the observed TCS x 50 gives the starting tonnage. One known unarmed diplomatic ship per alien race and system assessment gets a 10,000-ton allowance when the system value is below Extreme or the NPR knows only one system. The allowance count resets for each assessment. After the allowance, negative tonnage becomes 0. Classes with observed military engines or any known weapon count at full weight. Other classes count at 10%. This weighting uses the observed TCS, engine type and weapons, even though the recipient choice above uses actual class properties.

Positive ship tonnage below 1,000 is raised to 1,000. The colony term is the foreign race’s actual total colony EM in the system, not just the detected recipient’s EM. Positive EM below 100 is raised to 100.

SystemValue code Name Base multiplier
0 None Not processed by this step
1 Insignificant (provisional name) Not processed
2 Low Not processed
3 Medium 2.5
4 High 5
5 Extreme 10
6 Other race (provisional name) 20
T = base system multiplier
T = T / 2 if the contact status is Friendly
T = T x 2 if the diplomatic points before this penalty are negative
T = T x NPR Xenophobia / 100
annual penalty rate = sqrt(effective ship tons + 10 x colony EM) x T
penalty for this update = annual rate x elapsed seconds / 31,536,000

The point change goes through the general point-change rule without forced hostility. Existing hostile relationships can still lose points, but no departure message is sent once the relationship is or becomes Hostile.

For example, 10,000 effective ship tons, no colony EM, a High system, Neutral status, points that are not negative and Xenophobia 50 give T = 2.5 and 250 points per year. A 0.01-year update deducts 2.5 points. The permanent-presence exemption and the other gates must first be satisfied.

Warning strength and source identification

Section titled “Warning strength and source identification”

After the penalty, the step calculates:

h = (diplomatic points after the penalty + 100) / penalty for this update
h = 1,000 when the penalty for this update is not positive

h counts equivalent update intervals, not years. Changing the strategic interval changes h even when the annual penalty rate stays the same. The strongest matching player warning is chosen:

Player warning Condition
Demand leave with threat of fire T >= 16 or h < 2
Demand leave immediately T >= 8 or h < 5
Request leave urgently T >= 4 or h < 10
Request leave T >= 2
Suggest leave Otherwise

For a player recipient without established communication, the message is an unintelligible communication instead of the warning. The penalty is already applied before this translation check. Colony recipients log the message under the population summary category. Ship recipients log it under the ship category. The sender searches its own ships in the system before its colonies and picks the closest ship, even if a colony is nearer. Colonies qualify as message origins when their total population is above 0.01 or any installation exists. The recipient’s own knowledge decides how it describes the origin.

Against another NPR, the step instead writes a protection status on the sender’s system survey. T of 20 or more gives Demand Leave With Threat, 10 or more gives Demand Leave, 5 or more gives Request Leave Urgently, 2 or more gives Request Leave, and anything lower gives Suggest Leave. It does not use h or the player warning thresholds.

Damage penalties apply to the attacked race’s directional record of the attacker. They are separate from intelligence points and contact event IDs. These penalties need an existing alien-race record of the attacker.

Generic point changes and fixed relationships

Section titled “Generic point changes and fixed relationships”

The general point-change rule adds its signed change if the relationship is not fixed (FixedRelationship not 1) or hostility is being forced. It sets the portrait-shown flag. When hostility is forced, a resulting score strictly above -100 becomes -101. Exactly -100 is not changed. Whenever the resulting score is strictly below -100 and the record holder is an NPR, the NPR sets the relationship to Hostile. The forced change can bypass a fixed relationship but does not reset the fixed flag.

Setting a relationship to Hostile sets the contact status Hostile and changes the NPR’s value to Insignificant for every system its surveys show as controlled by that alien race. This is a territorial consequence in addition to the diplomatic change.

Let d be the damage per hit, and m = 3 when the target is an NPR ship whose class main function (MainFunction) is Diplomacy, otherwise 1:

ship penalty = m x d x (0.1 x shield hits + 0.25 x armour hits + penetrating hits)
nonship penalty = 0.25 x total hits x d

Shield hits weigh 0.1, armour hits 0.25 and penetrating hits 1 in the ship penalty. Both penalties subtract from the score and add the same value to the damage-caused total (DamageCausedByAlienRace). They do not check a fixed relationship first. If the score after a ship penalty is strictly above -101, the fixed flag clears and the score becomes -101 x m. The nonship penalty likewise clears the flag and sets -101. Only in these clamp cases do the attack penalties set an NPR victim to Hostile at once. If the score is already at or below -101 after the deduction, this immediate change does not happen. Later diplomacy processing may still act on the score.

For two shield hits, three armour hits and one penetrating hit at d = 10, the ordinary deduction is 19.5. Against an NPR diplomatic ship it is 58.5. Starting from +100, the score is clamped to -101 or -303, while the damage-caused total records 19.5 or 58.5, not the full clamp displacement. Ship attacks apply the penalty without requiring a positive hit count, so an eligible attack record with zero counted damage can still trigger the clamp.

Bombardment of a population, ground unit or STO uses the nonship penalty when target and attacking races exist, including collateral damage. Shipyard attacks first apply the nonship penalty, then separately apply -(total hits x d) through the general rule with forced hostility. The nominal deductions therefore add up to 1.25 x total hits x d, with clamp and fixed-state effects depending on the starting score. The resolved-damage total starts again for each attack record, not once for the whole list of attack records.

A ground element’s attack keeps one destroyed-size total for the whole attack. On every successful hit it adds that hit’s destroyed size and deducts the cumulative destroyed size / 100 through the general rule with forced hostility. A successful hit that destroys nothing can still charge the size destroyed earlier, and even a zero-size hit can trigger the forced hostility clamp. This is not one deduction of the total lost size at the end of combat. For two hits destroying sizes 100 and 100, the cumulative deductions are 1 then 2, 3 points in total before any clamp.

Domain Numeric values
Contact method (ContactMethod) 1 Active sensor (provisional name), 2 Thermal, 3 EM or emission, 4 Shield, 5 Transponder, 6 Environmental (provisional name)
Contact type (ContactType) 0 None, 1 Ship, 3 Salvo, 4 Population, 9 Packet, 12 Ground unit, 14 STO ground unit, 16 Shipyard, 17 Explosion, 18 EW impact, 19 Secondary power, 20 Secondary Mg, 22 Waypoint
Contact freshness state, not saved 0 Current, 1 Partial, 2 Lost
Engine type (EngineType) 0 None, 1 Military, 2 Commercial, 3 FAC, 4 Survey, 5 Fighter
Jammer type 0 None, 1 Sensor, 2 Fire control, 3 Missile
Transponder mode 0 Off, 1 Friendly, 2 All
Special race type (SpecialNPRID) 0 Standard,
Personality trait 0 Xenophobia, 1 Translation, 2 Militancy, 3 Determination

Special race lifecycles covers the special races.

New contact notifications use event types Hostile 181, Neutral 182, Friendly 183, Allied 184 and Combat 285. Other statuses fall back to civilian contact, 191. Updates use Hostile 206, Neutral 207, Friendly 208 and Allied 209, otherwise civilian contact update, 210. Neutral or Friendly contacts in a system controlled by that alien race use 362 or 363 instead, and the allied contact update for such a system, 364, is never chosen. Contact event type selection covers the selection order and the categories.

The saved intelligence tables divide information by observer and subject.

Table Information
FCT_AlienRace Observer and target relation, contact status (ContactStatus), communication status (CommStatus), communication modifier (CommModifier), communication and contact times, diplomatic and race intelligence points, treaties, portrait and name flags, damage history
FCT_Contacts Sensor tracks, ContactID (the underlying ship, salvo, population or shipyard ID), method and type, strength and resolution, creation, reestablishment and update times, coordinates, speed
FCT_AlienClass Inferred ship-class statistics, role, engine type, weapon and point-defence indicators, jammers, summary, notes, known hull counts
FCT_AlienClassWeapon WeaponID, Amount, Range, ROF, LastFired
FCT_AlienClassSensor Links from classes to sensors
FCT_AlienClassTech Links from classes to known technologies
FCT_AlienShip History of an individual tracked hull, location, damage, destruction and salvage
FCT_AlienRaceSensor Observer’s sensor catalogue, strength, resolution, range, intelligence points, references to the actual component, missile or ground class
FCT_AlienPopulation Observed population, installations, facilities and signatures, current, maximum and previous-maximum colony intelligence points
FCT_AlienGroundUnitClass Hits, Penetrated, Destroyed, WeaponsKnown, class identity
FCT_AlienRaceSpecies Species associated with a known race
FCT_KnownSpecies The observer’s species knowledge Status
FCT_AlienSystem Systems associated with known alien presence
FCT_AlienRaceSystemStatus System protection status per observer and alien race
FCT_RaceGroundCombat ConsecutiveCombatRounds, used by force estimates
FCT_ShipTechData Research data held aboard ships

Scope queries by GameID and the matching viewing or detecting race column. Restrict player intelligence queries to these observer-specific records. Joins through the actual class, actual sensor, ship or population IDs (ActualClassID, ActualSensor, ShipID, PopulationID) can expose actual capabilities beyond what was observed. FCT_AlienPopulation.GFTF holds the ground force construction complex count.

Boolean flags generally decode as 0 false and 1 true. RealClassNames, RandomNameOrder and FixedRelationship are stored as whole numbers, and RandomNameOrder defaults to 1. RealClassNames and the naming theme choices govern identification and display, not an additional intelligence tier. FirstDetected, LastContactTime, CommEstablished and related times are game-time seconds. A game year is 31536000 seconds and a day is 86400 seconds. Sizes in HS convert at 50 tons per HS. Observed speed is in km/s, and weapon and sensor range is in km.

The colony’s last-intelligence-update time is not among the saved columns of FCT_AlienPopulation. The prisoner groups are saved in FCT_Prisoners. Keep observation, status and counter data apart from the links to actual classes and species, which can expose hidden facts when a database query bypasses the reveal gates of the window.

The intelligence event types are Communication 55, Intelligence Update 106, New Alien Race 147, Successful Espionage 157, Diplomacy 180, New Combat Contact 285, Ground Combat Intelligence 314, Alien Communication 315 and Interrogation Update 367. Their interrupt and display flags come from DIM_EventType, which the event type catalogue lists in full. Each event chooses its category separately, as categories and the type-to-category mapping explains. Within intelligence, territorial claim summaries and replies use the Intelligence category, departure warnings to a recipient use the population summary or ship category, force estimates use the system category and transient combat contacts use the combat category. The event types page covers how an event is stored and which interrupt flags it sets.

Table Ownership and key columns Relevant state
FCT_AlienRace GameID, ViewRaceID, AlienRaceID Directional contact and communication state, diplomatic and race intelligence points, fixed relationship, treaties, damage history, names and portrait
FCT_AlienRaceSystemStatus GameID, ViewingRaceID, AlienRaceID, SystemID ProtectionStatusID, with no time or expiry column
FCT_RaceSysSurvey GameID, RaceID, SystemID ControlRaceID, NPR SystemValue, AutoProtectionStatus, discovered and map state
FCT_RaceGroundCombat GameID, RaceID, SystemBodyID ConsecutiveCombatRounds, while the active-this-update flag is not saved
FCT_Contacts GameID, DetectRaceID, ContactRaceID, UniqueID and ContactID Track method and type, strength and resolution, creation, reestablishment and update time, position and speed
FCT_GameLog GameID, RaceID, IncrementID Recipient of the log entry, EventType, time, message, system, coordinates and population, with IDType holding the event category
FCT_Game GameID TruceCountdown, game time and event window defaults
DIM_EventType EventTypeID Global descriptions and display, attack and interrupt settings

In FCT_AlienRace, ViewRaceID = A and AlienRaceID = B stores A’s stance and knowledge about B. B’s view of A is another record. Saving writes the directional records of every race, and loading a game rebuilds them under the viewing race. DamageCausedByAlienRace is the accumulated attack point penalty, not a physical damage total. The subject race and the viewing race of a record must not be confused.

Loading protection statuses requires the viewing race, the subject race, the observer’s alien-race record and the system survey to exist. Each status is then restored against that observer’s alien-race record. ControlRaceID and SystemValue live on the separate FCT_RaceSysSurvey record. Selecting a protection level does not rewrite them. Loading a game restores SystemValue into the NPR’s assessment of the system.

Consecutive combat counts are saved and restored by race and body. The next context update recomputes the active flags.

Database analysis should scope GameID and the relevant observer or recipient race. Saved references to actual ships, populations and classes can reveal information beyond that observer’s stored intelligence. Some territorial AI calculations deliberately read actual colony EM and actual class and technology properties. That does not grant those values to the player’s intelligence screen.

Saving keeps only events from increments that started less than five years (157,680,000 seconds) before the save, and loading a game restores at most 10,000 rows. The event log therefore keeps intelligence messages over a different span from the one-year sensor-track expiry. Log retention at save, loading by increment and Events window cover the retention, load and display rules.

Worked examples and interpretation caveats

Section titled “Worked examples and interpretation caveats”

The following examples apply the formulas on this page to illustrative inputs. They assume no particular saved game or database beyond the stated constants.

Example Inputs Result
Diplomatic mission +20% Diplomacy commander, holder Xenophobia 40, one year, eligible mutual contacts and module, established communication The mission adds 108 points. Incoming treaty and status contributions are additional. A mission value of 1 instead adds no mission points and suppresses drift toward zero.
Translation boundary Translation values 50 and 50, die 40, communication modifier 0, different primary species, standard target, no positive qualifying commander bonus R = 90 is Moderate, not Significant. M = 0.5 awards +2.5 communication modifier and +2.5 diplomatic points to the attempting record if it is not fixed.
Sensor threshold Intelligence multiplier 1.25, 80 days of eligible awards in total, starting at 0 points Sensor points reach 100. The classification event runs, while the ordinary detailed display still needs more than 100. Any further eligible gain crosses the display gate.
Colony decay Current and maximum points 400, one year as a single interval without observation Current points become 300 and the maximum stays 400. The above-300 tier shows red, as history only, at exactly 300. Remembered data is kept.
Race reward spending Established communication, pool 90, gain 220 in one award The pool becomes 310, spends 100 once and ends at 210 after at most one reward attempt. Up to three d7 choices belong to that one attempt. Failed eligibility does not refund points.
Ground force estimate True count 300, n = 1, largest die result 200 Factor 3 gives 900 or 100, despite the displayed 200% error label.

Keep these distinctions in mind when reading the Intelligence screen, the logs or the database:

  • Direction matters. A’s grants and opinion of B do not describe B’s grants or opinion of A. Release and mission gains may target the reciprocal record.
  • Cadence matters. Communication, immediate claim charges and random reward attempts work per update. Diplomacy, ELINT and intrusion penalties use elapsed-time rates. Threshold processing and contact continuity have exact boundary rules.
  • Actual values differ from displayed evidence. Actual references to ships, classes and sensors, actual sensor range and territorial AI inputs may exist before the observer’s reveal threshold. The observed class summary, the observed numbers and full revelation are separate operations.
  • Knowledge persists unevenly. One-year track expiry, colony current-point decay, kept maxima, ground counters, species statuses and five-year event retention are different lifecycles. Sticky colony flags and class maxima can keep old information.
  • An event records one outcome. An event promising Friendly jump access, a missed threshold notification or a Communication Impossible fallback does not on its own establish every condition linked to it.

The communication snapshot, the exact-zero truce, the late track-strength update, the full-reveal thermal value, the prisoner capacity rule, cumulative attack penalties and the wreck technology error are described where they occur. Provisional role and state names describe stored values, not confirmed tactical meanings. The documentation archive and the historical September 2020 C# manual are optional external companions to this page.

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