The medal system keeps three things apart. A commander accumulates measurement totals, such as tons of military shipping destroyed. A condition assignment links one medal to one condition and watches for a total crossing that condition’s threshold. An award record on the commander holds the medal once it is earned. Length-of-service medals use no measurement total. A separate service scan awards them.

Research and scientific personnel covers research points, shared experience and scientist careers. This page expands the hand-off from a scientist’s research measurement to a medal. That hand-off happens inside the research step. The service scan runs at the end of the commander health and retirement update.

Naval administration and command covers promotions in general. This page isolates what medals add to the promotion score. Civilian governance and ship readiness keep their own operational calculations. A medal definition and the award step carry no governor production modifier and no readiness modifier.

Object What the game holds and what it means
Medal definition Owning race, medal ID, name, description, abbreviation, whole-number promotion points (MedalPoints), the multiple-awards flag (MultipleAwards), the image file name (MedalFileName) and the loaded image
Medal condition Measurement type, condition ID (MedalConditionID), whole-number threshold (AmountRequired, 1 until the stored value is read), display order (DisplayOrder) and description
Condition assignment Refers to one medal and one condition. It is the association, not an earned award
Award record The medal it refers to, a whole-number award count (NumAwarded) and one reason text (AwardReason)
Measurement Measurement type, decimal amount and a strike-group flag. A commander holds one total per measurement type and one award record per medal ID

Conditions come from DIM_MedalCondition when a game is loaded. The Medal Management window assigns them to medals. It offers no way to edit a threshold.

The Medal Conditions tab of that window lists every condition sorted by DisplayOrder, with the columns Condition Description, Measure Type, Measure Amount, Associated Medal and Sort. The list of available conditions keeps every loaded condition, even one that is already assigned. The Associated Medal column shows the medal of the first assignment for that condition, whatever race the window currently displays. It therefore does not show that a condition belongs to one medal only, and it does not list every medal linked to the condition.

Save As New requires a selected race and a selected image file name. It allocates a new medal ID, copies the form values and adds a new definition owned by the race. Name, description and abbreviation are copied as entered. The Promotion Score Modifier box is converted to a whole number. The button accepts negative points and does not require a unique name.

Save Current requires a selected medal and an image file name. It then changes the text, points, image and multiple-awards flag of the existing definition. It does not rebuild the medal’s condition assignments and does not replace the award records that commanders hold. Award records refer to the definition, so later medal displays and promotion score recalculations use the edited values.

Select Image stores the chosen file’s name without its folder and loads the file. Selecting an existing medal later loads its image by file name from the Medals folder inside the game’s program folder. Saving the form does not copy a file chosen elsewhere into that folder.

Add Condition checks only that a medal is selected. It skips an exact duplicate of a medal and condition pair. Different conditions may point to the same medal, and the same condition may point to several medals. Adding the assignment does not look at the totals commanders already hold.

Delete Condition requires a selected medal and a selected assigned condition. It removes the first matching pair and refreshes the lists. It does not remove an earned medal, undo history or reset measurement totals.

Delete Medal asks for confirmation. It removes the medal’s assignments and removes the definition from the game’s medal list, but it does not touch commander award records. Awards already held stay on the commanders until another lifecycle boundary, described in Persistence and lifecycle boundaries.

Export Medals writes the race’s medals in descending point order. Each line holds name, description, abbreviation, points, Y or N for multiple awards and the image file name, then the condition IDs. The fields are joined with commas without CSV escaping. The file holds no recipients and no measurement totals.

Import Medals splits each line on commas. A line needs at least six columns and a nonempty first column, otherwise it is skipped. Each imported medal gets a new ID, and its image is read from the Medals folder. Only an exact Y enables multiple awards. A points value that is not a whole number, or an image that cannot be loaded, raises an error that ends the import as described below.

The duplicate check for each imported condition compares against the medal highlighted in the Medal Management window, not against the medal being imported. When the highlighted medal already holds a condition, the imported medal does not receive it. Otherwise a line that repeats a condition ID adds two equal assignments, and one crossing then runs the award step twice for that medal.

The import reads condition fields from zero-based column index 6 onward. It moves to the next field only after a field that holds a known condition ID. The stalling input is the first condition field that converts to a whole number but matches no loaded condition ID, such as 0, -1 or 73 against the 72-row table. It stalls the import on a line whose earlier columns import without error and whose earlier condition fields are all known IDs. The import then reads that same column again and again without end. Nothing changes while it does so, and the window never returns control. The game hangs instead of skipping the value, and only ending the game process gets out of it.

A field that does not convert to a whole number, such as abc or a single space, raises an error instead. The import shows error Function #175 and ends at that line. Medals from earlier lines stay imported. Assignments that earlier fields of the failing line added stay in the game’s assignment list. They point at a medal that never joins the game’s medal list. The automatic award check filters only on the medal’s race, which the import sets to the selected race. A crossing therefore still awards that orphan medal until the game is reloaded. On reload the game drops those orphan assignments, because their medal ID matches no saved medal.

The game’s own export cannot produce the stalling input for a game that loaded the same DIM_MedalCondition rows. Export writes the condition IDs of existing assignments. Every assignment holds a condition from the loaded table. Add Condition picks from the list that the table fills, import adds a condition only after its ID matches a loaded condition, and loading a saved game skips assignment IDs absent from the table. A file exported from a database whose DIM_MedalCondition holds an ID that the importing database lacks does stall the import when the line reaches that ID. That happens when the line’s image loads and every condition field before that ID is a known ID.

Export also writes text fields without escaping commas. A comma in a name, description or abbreviation shifts every later column right. After such a shift, zero-based column 5 holds another field’s value. Loading the image then fails unless the Medals folder holds a file of that exact name, provided the points conversion on zero-based column 3 has not already failed. A shifted line therefore ends the import with an error before the condition fields are read, rather than stalling it.

Recording a measurement on a commander does nothing for an NPR commander. Otherwise the game adds the amount to the existing decimal total. When the commander has no total of that type yet, the game starts one at the amount, with a previous total of zero. Negative amounts are neither clamped nor rejected.

For each condition assignment, the game then awards the medal when all of these hold:

  • the medal belongs to the commander’s race
  • the condition’s measurement type is the type just recorded
  • the previous total is below the condition’s AmountRequired
  • AmountRequired is at or below the new total

This is a crossing test, and it includes equality at the new total. It is not a repeated check that the total is at or above the threshold. Each matching assignment awards its medal through the shared award operation on its own.

Consequences of that test:

  • An update from 9 to 10 crosses threshold 10. An update from 10 to 11 does not.
  • An update from 0 to 25 crosses thresholds 10 and 20 in the same step when both assignments exist.
  • Attaching a threshold-10 condition after a commander already has 25 awards nothing. Adding the assignment never scans totals, and a later update from 25 to 26 does not cross it, because the threshold is not above the previous total.
  • A zero amount normally crosses nothing. A negative amount can lower the total, after which a later rise may cross again. For example, 12 to 8 to 10 crosses 10 on the second update. Whether that gives a second award still depends on the medal’s multiple-awards flag.
  • A threshold of zero or below is not crossed from the starting previous total of zero by recording a positive amount. A negative earlier total can change that result. No special threshold validation applies here.

The game does not sort the matching assignments before awarding. DisplayOrder sorts the condition list in the Medal Management window and does not set award precedence. If several crossed conditions award one single-award medal, the first successful award supplies the reason and the later ones return without change. With multiple awards enabled, later successful awards can overwrite the reason.

The commander recording step adds raw decimal amounts without any adjustment for elapsed time. Service is separate. The game converts career seconds into completed years, as Length-of-service awards describes.

Producer Who receives the amount
Research The assigned scientist receives the research points generated and, when the project completes, one completed project
Ship combat The ship records its own total, then its ship commanding officer, if it has one, receives the same amount
Ground combat The formation commander receives the amount
Fleet discoveries and salvage The qualifying ships record first, then one selected captain receives the commander credit

For jump point discovery, salvage, stabilisation and geological discoveries, the fleet selects the senior captain with the relevant component. Other fleet measurements go to the first ship commander found after ordering the commanders of the fleet’s ships by rank priority, then seniority. Ships without a commander are ignored in that ordering. When no captain is selected, no commander measurement is recorded.

Fleet credit to ships is handed out separately, to the fleet’s independent ships. For the same specialised categories, only ships with an undamaged relevant component qualify. Both fleet recording steps skip NPR races.

Ship totals keep direct records apart from strike-group records. A ship assigned to a mothership also adds each amount to a strike-group total on the mothership. That mothership total never reaches the mothership commander’s medal check. Recording on a ship alone has no NPR check of its own.

Combat uses different units in different categories. A destroyed ship adds one. Commercial and military destruction record the class size in hull spaces times 50 tons per hull space. Armour damage records armour hits x damage per hit. Each combat event sets its own amount, and the counters are not interchangeable.

When a game is loaded, the game reads every row of DIM_MedalCondition and identifies each condition by MedalConditionID. It converts AmountRequired and DisplayOrder to whole numbers and reads the whole-number MeasurementType column as one of the measurement types in the table below. The conditions load with the other static game definitions. The saved game data loads later, and its condition assignments are matched against these conditions.

The game database as shipped holds 72 rows with IDs 1 to 72. The tables below list every row, grouped by measurement type. Each measurement type appears under its game name, which the Measure Type column of the Medal Management window shows for every type that has rows, followed by its stored MeasurementType number. A row awards nothing until the Medal Management window assigns it to a medal, as Creating and changing medals describes. Its Description becomes the stored reason of an automatic award. Its DisplayOrder sorts only the window’s condition list and its list of available conditions.

AmountRequired is the threshold of the crossing test in Automatic achievement awards. The three Length of Service (15) rows are the exception. The service scan compares them with completed years.

Every measurement type from 1 to 23 has at least one row. Type 0 (None) and LP Stablisations Completed (24) have no row. The producer column names the game event that records the type.

Measure Type MeasurementType Rows Producer
None 0 0 Not recorded
Star Systems Discovered 1 4 Fleet entering a system for the first time
Ruins Discovered 2 3 Fleet completing a geological survey of a body with ruins
Ship Destruction Survived 3 1 Commander escaping to a lifepod
Hostile Ships Destroyed 4 1 Attacking ship destroying a ship
Commercial Tonnage Destroyed 5 5 Ship or ground formation destroying a commercial ship
Hostile Missiles Destroyed 6 6 Point defence and CIWS once per kill. Interceptors twice per kill and once per hit that does not destroy
Military Tonnage Destroyed 7 5 Ship or ground formation destroying a military ship
Armour Damage Taken 8 1 Surviving target with armour hits
Internal Damage Taken 9 1 Surviving target with penetrating hits
Ground Tonnage Destroyed 10 7 Ship fire, ship ground attack, ground combat and boarding combat
Bodies With Minerals Discovered 11 4 Fleet completing a geological survey of a body with deposits
Jump Points Discovered 12 3 Fleet charting a jump point from a survey location
Research Points Generated 13 4 Project scientist during research and on completion
Research Projects Completed 14 2 Project scientist on completion
Length of Service 15 3 None. The service scan reads service years instead
Successful Boarding Combat 16 2 Commanders of formations that capture a ship
Habitable World Discovered 17 2 Fleet entering a system with colony-cost-0 bodies
Combat Drop - Formation 18 2 None reached. The recording runs only for an order that never reaches it
Combat Drop - Transport 19 2 None reached. The recording runs only for an order that never reaches it
Recover Installation 20 4 Formation commander on one recovery roll in ten
Tons Salvaged 21 3 Fleet completing a wreck salvage
JP Stablisations Completed 22 4 Fleet stabilising a jump point
23 3 Fleet completing a geological survey of a body with a construct
LP Stablisations Completed 24 0 Fleet stabilising a Lagrange point, read by no row

Fleet producers credit qualifying ships first and then one selected captain, as Where measurements come from describes. Ship producers record on the ship and then on its ship commanding officer. Recording on a commander does nothing for an NPR commander, so no producer below advances an NPR commander total. Ship producers still add to an NPR ship’s own totals. Fleet producers stop for an NPR fleet before any ship credit.

MedalConditionID Description Measurement (MeasurementType) AmountRequired DisplayOrder
1 Discover New Star System Star Systems Discovered (1) 1 1500
22 Discover 10 New Star Systems Star Systems Discovered (1) 10 1600
58 Discover 25 New Star Systems Star Systems Discovered (1) 25 1610
59 Discover 100 New Star Systems Star Systems Discovered (1) 100 1620
32 Habitable World Discovered Habitable World Discovered (17) 1 1625
33 Three Habitable Worlds Discovered Habitable World Discovered (17) 3 1650
2 Discover Alien Ruins Ruins Discovered (2) 1 2050
53 Discover Three Alien Ruins Ruins Discovered (2) 3 2051
63 Discover Ten Alien Ruins Ruins Discovered (2) 10 2052
69 Discover 50 System Bodies With Minerals Bodies With Minerals Discovered (11) 50 1890
18 Discover 100 System Bodies With Minerals Bodies With Minerals Discovered (11) 100 1900
65 Discover 250 System Bodies With Minerals Bodies With Minerals Discovered (11) 250 1910
19 Discover 1000 System Bodies With Minerals Bodies With Minerals Discovered (11) 1,000 2000
61 1 2060
62 3 2061
70 10 2062
20 Discover 10 Jump Points Jump Points Discovered (12) 10 1700
68 Discover 25 Jump Points Jump Points Discovered (12) 25 1710
21 Discover 100 Jump Points Jump Points Discovered (12) 100 1800
  • Star Systems Discovered (1). The first transit into a system the race has no survey of records 1 on the transiting fleet, as described in exploration and first transit. Nothing is recorded when the transit has no fleet, or when the race already had survey knowledge of the destination system and the game reports a new connection to a known system. The fleet credits the first ship commander ordered by rank priority, then seniority.
  • Habitable World Discovered (17). The same first-transit step collects the destination system’s bodies with at least one atmospheric gas. It computes each body’s colony cost for the exploring race’s primary species, without orbital extremes. It counts the bodies whose current colony cost is 0 and records that count in one step when it is above zero. A system with three such bodies therefore crosses the thresholds 1 and 3 in the same step.
  • Ruins Discovered (2), Bodies With Minerals Discovered (11) and . When a fleet completes the geological survey of a body, the survey step records 1 of each type that applies. Minerals count when the body has at least one deposit. Ruins count when the body has a ruin (RuinID above 0) and abandoned installations (AbandonedFactories above 0). One survey can record all three. The credited captain is the senior captain with geological survey sensors. Geological discoveries covers the survey itself.
  • Jump Points Discovered (12). Charting from a survey location records 1 for each jump point it newly charts. It records only when a surveying fleet does the charting. A jump point charted through another race’s shared survey data, or charted with no fleet involved, records nothing. The credited captain is the senior captain with gravitational survey sensors. Survey locations and jump-point charting covers the charting rule.
MedalConditionID Description Measurement (MeasurementType) AmountRequired DisplayOrder
3 Survive Ship Destruction Ship Destruction Survived (3) 1 1200
4 Destroy Hostile Ship Hostile Ships Destroyed (4) 1 50
5 Destroy 100,000 tons of Commercial Shipping Commercial Tonnage Destroyed (5) 100,000 400
6 Destroy 250,000 tons of Commercial Shipping Commercial Tonnage Destroyed (5) 250,000 500
42 Destroy 500,000 tons of Commercial Shipping Commercial Tonnage Destroyed (5) 500,000 550
7 Destroy 1,000,000 tons of Commercial Shipping Commercial Tonnage Destroyed (5) 1,000,000 600
43 Destroy 2,500,000 tons of Commercial Shipping Commercial Tonnage Destroyed (5) 2,500,000 620
9 Destroy 10,000 tons of Military Shipping Military Tonnage Destroyed (7) 10,000 100
10 Destroy 25,000 tons of Military Shipping Military Tonnage Destroyed (7) 25,000 200
40 Destroy 50,000 tons of Military Shipping Military Tonnage Destroyed (7) 50,000 250
11 Destroy 100,000 tons of Military Shipping Military Tonnage Destroyed (7) 100,000 300
41 Destroy 250,000 tons of Military Shipping Military Tonnage Destroyed (7) 250,000 320
8 Destroy 25 Hostile Missiles Hostile Missiles Destroyed (6) 25 900
12 Destroy 100 Hostile Missiles Hostile Missiles Destroyed (6) 100 1000
64 Destroy 250 Hostile Missiles Hostile Missiles Destroyed (6) 250 1001
72 Destroy 500 Hostile Missiles Hostile Missiles Destroyed (6) 500 1002
23 Destroy 1000 Hostile Missiles Hostile Missiles Destroyed (6) 1,000 1100
67 Destroy 2500 Hostile Missiles Hostile Missiles Destroyed (6) 2,500 1105
13 Suffer Armour Damage Armour Damage Taken (8) 1 1300
14 Suffer Internal Damage Internal Damage Taken (9) 1 1400
  • Ship Destruction Survived (3). When a ship is lost, each commander who escapes to a lifepod records 1 directly. No ship total is written. The escaping group is every distinct commander among those transported aboard, the admin commanders assigned to the ship and the holders of the six shipboard officer roles. Each one dies on a failed one-in-two roll unless the ship was abandoned, so abandoning a ship records survival for every escaping commander. No commander escapes and nothing is recorded when the surviving crew is zero or less. The surviving crew is the whole current crew for an abandoned ship and otherwise the current crew times (a roll of 1 to 50, plus 25) divided by 100. Lifepods and captivity covers what happens to the survivors.
  • Hostile Ships Destroyed (4), Commercial Tonnage Destroyed (5) and Military Tonnage Destroyed (7). The combat aftermath records a kill when an attack destroys a ship target. With an attacking ship, it records 1 Hostile Ships Destroyed and then the destroyed class size in hull spaces times 50 tons per hull space as commercial or military tonnage, chosen by whether the class is commercial. Both go to the attacking ship and its ship commanding officer. With a ground formation as the attacker, it records only the tonnage, on the formation commander. The kill record does not compare races, so “Hostile” is condition text, not a filter.
  • Unused damage rule. The game holds a damage-recording rule that would record internal damage, or the damaged ship’s own tonnage as Military Tonnage Destroyed, but nothing in the game ever triggers it.
  • Hostile Missiles Destroyed (6). Four events record it. Point defence fire records 1 per destroyed missile on the firing ship. An interceptor missile records 1 per destroyed missile on its launching ship when it has a launching ship. Point-blank CIWS records the destroyed count on the defended ship when the count is above zero. The interception also adds an attack record with one hit for the same ship and missile type. The combat aftermath works through those records later in the same sub-pulse and records their total hits on the attacking ship a second time. Each kill by a ship-launched interceptor therefore adds 2 to the total, and each interceptor hit that leaves its target intact adds 1, because the aftermath records total hits. Beam point defence and CIWS records carry a weapon component, so the aftermath handles them as beam fire, which records nothing. Automatic AMMs and interceptor resolution covers the interception itself.
  • Armour Damage Taken (8) and Internal Damage Taken (9). For a ship target that survives an attack with hits, the aftermath records armour hits x damage per hit as armour damage when there is at least one armour hit. When there is at least one penetrating hit it records internal damage, but the amount it records is also armour hits x damage per hit. A record with penetrating hits and no armour hits records 0 internal damage, which crosses no threshold. A destroyed target records neither measurement.
MedalConditionID Description Measurement (MeasurementType) AmountRequired DisplayOrder
15 Destroy Hostile Ground Unit Ground Tonnage Destroyed (10) 1 650
16 Destroy 1000 tons of Hostile Ground Forces Ground Tonnage Destroyed (10) 1,000 700
44 Destroy 2500 tons of Hostile Ground Forces Ground Tonnage Destroyed (10) 2,500 725
45 Destroy 5000 tons of Hostile Ground Forces Ground Tonnage Destroyed (10) 5,000 750
17 Destroy 10,000 tons of Hostile Ground Forces Ground Tonnage Destroyed (10) 10,000 800
46 Destroy 25,000 tons of Hostile Ground Forces Ground Tonnage Destroyed (10) 25,000 820
60 Destroy 100,000 tons of Hostile Ground Forces Ground Tonnage Destroyed (10) 100,000 825
31 Capture Hostile Ship in Boarding Combat Successful Boarding Combat (16) 1 850
66 Capture Three Hostile Ships in Boarding Combat Successful Boarding Combat (16) 3 851
34 Participate in Combat Drop - Formation Combat Drop - Formation (18) 1 830
35 Participate in Five Combat Drops - Formation Combat Drop - Formation (18) 5 840
36 Participate in Combat Drop - Transport Combat Drop - Transport (19) 1 860
37 Participate in Five Combat Drops - Transport Combat Drop - Transport (19) 5 880
  • Ground Tonnage Destroyed (10). Every producer adds up the results of the hits in an attack. A hit that destroys a ground unit counts the target’s class size, and any other hit counts 0. Ship beam and missile fire on a formation record the sum only when the attack has an attacking ship. A ship’s ground attack records on the ship and its ship commanding officer. Ground combat and boarding combat record on the formation commander only.
  • Successful Boarding Combat (16). After boarding combat transfers a captured ship to the capturing race, the game records 1 on every active commander who commands one of the boarding formations.
  • Combat Drop - Formation (18) and Combat Drop - Transport (19). The only recording sits in the unload of a specified ground formation, and it runs only for the Orbital Drop All Ground Units order (move action 203). Troop transports send only Unload Ground Unit (87) and Orbital Drop Ground Unit (201) orders to that unload. They send Orbital Drop All Ground Units (203) and Unload All Ground Units from Transport Bay (88) to the unload-all step, which records no measurement. No path in the game therefore records either type, and the four combat drop rows cannot be met in play. Troop formations covers the unload orders.
MedalConditionID Description Measurement (MeasurementType) AmountRequired DisplayOrder
24 Generate 10,000 Research Points Research Points Generated (13) 10,000 2300
54 Generate 25,000 Research Points Research Points Generated (13) 25,000 2310
25 Generate 100,000 Research Points Research Points Generated (13) 100,000 2400
55 Generate 250,000 Research Points Research Points Generated (13) 250,000 2410
26 Completed Research Project Research Projects Completed (14) 1 2100
27 Completed Five Research Projects Research Projects Completed (14) 5 2200
28 Ten Years of Service Length of Service (15) 10 2500
29 Twenty Years of Service Length of Service (15) 20 2600
30 Thirty Years of Service Length of Service (15) 30 2700
  • Research Points Generated (13) and Research Projects Completed (14). While a project stays unfinished, the research step records the points generated in that step on the project scientist. On completion it records the points that were still required, not the full step output, and then 1 completed project. Cycle execution, completion and overflow owns the research step itself.
  • Length of Service (15). No game event records this type as a measurement. The service scan compares completed service years with AmountRequired directly, as Length-of-service awards describes.

Salvage, stabilisation and recovery conditions

Section titled “Salvage, stabilisation and recovery conditions”
MedalConditionID Description Measurement (MeasurementType) AmountRequired DisplayOrder
38 Recover 10 Abandoned Installations Recover Installation (20) 10 2800
56 Recover 25 Abandoned Installations Recover Installation (20) 25 2810
39 Recover 100 Abandoned Installations Recover Installation (20) 100 2900
57 Recover 250 Abandoned Installations Recover Installation (20) 250 2910
50 Salvage 25,000 tons (Commercial / 10) Tons Salvaged (21) 25,000 2020
51 Salvage 100,000 tons (Commercial / 10) Tons Salvaged (21) 100,000 2021
52 Salvage 250,000 tons (Commercial / 10) Tons Salvaged (21) 250,000 2022
47 Stabilise 1 Jump Point or Lagrange Point JP Stablisations Completed (22) 1 2010
48 Stabilise 3 Jump Points or Lagrange Points JP Stablisations Completed (22) 3 2011
49 Stabilise 10 Jump Points or Lagrange Points JP Stablisations Completed (22) 10 2012
71 Stabilise 25 Jump Points or Lagrange Points JP Stablisations Completed (22) 25 2013
  • Recover Installation (20). Installation recovery removes one abandoned installation on each successful recovery roll. The roll succeeds when a roll of 1 to 10,000 is below morale times the formation commander’s Xenoarcheology bonus (1 without a commander) times 500 times the elapsed years times the formation element’s effective construction rating. It records 1 on the formation commander only when that commander exists and a second roll of 1 to 10 returns 1. That is the same roll that raises the commander’s Xenoarcheology bonus by 0.01. The measurement therefore counts about one recovery in ten, so on average the 10-installation row needs about 100 recoveries by formations under one commander.
  • Tons Salvaged (21). Completing a wreck salvage records the wreck’s class size in hull spaces times 50 for a military wreck, and one tenth of that for a commercial wreck. That matches the “(Commercial / 10)” in the row text. The credited captain is the senior captain with a salvage module.
  • JP Stablisations Completed (22). Stabilising a jump point records 1 after the game sets the gate’s owning race and a gate strength of 1000. The credited captain is the senior captain with jump point stabilisation. Jump gate construction covers what the gate changes.
  • LP Stablisations Completed (24) has no row. Stabilising a Lagrange point records it after the game creates the Lagrange point. The four stabilisation rows, whose text names jump points or Lagrange points, carry MeasurementType 22, so a Lagrange point stabilisation does not advance them.

The award step looks for the commander’s existing award record of that exact medal definition. A new record is stored under the medal’s ID, with a count of one. When a record exists and the medal’s MultipleAwards is off, the award ends there, before any reason change or logging.

With MultipleAwards on, an existing record has its count set to 2, not increased. Three awards of a fresh medal therefore give counts 1, 2 and 2, and the third still logs another “2nd award”. A repeat award would also reset a loaded count above two to two.

An automatic condition takes precedence over a supplied citation and stores the condition description as the reason. Without a condition, a nonempty citation replaces the reason, and an empty citation leaves an existing reason unchanged. One aggregate record therefore does not keep a separate citation for every award.

A successful award adds a commander history line and a Medal Awarded event. It does not recalculate the promotion score and does not change bonuses. The award also tries to add a line to the history of the commander’s assigned ship. That step adds its line only when the commander has no assigned ship, so it never writes ship history. For a commander in a shipboard role with no ship assigned, the step fails and shows error Function #3672. That error ends only the ship history step, and the Medal Awarded event is still logged.

The award step itself does not check race ownership, NPR status, prisoner status, retirement, threshold or command type. Automatic and manual awards apply their own selection rules before they reach it. A different medal definition that reuses an already-used medal ID can miss the lookup and fail when its record is stored under that ID. The award step then shows error Function #368 and ends. Nothing done before the error is undone.

The Award Medal window lists the race’s medals by points. Award requires a selected medal. It stores the checked command-type boxes (Ship Commander, Science Officer and the others) and the medal, then closes the window. Cancel clears both.

The bulk award prompts once for an optional citation, then awards each supplied commander whose current command type is checked. Cancelling the citation prompt still awards, with an empty citation. The bulk award neither removes duplicate candidates nor rechecks race, status or location. The window that starts it decides who the candidates are.

Window Candidates before the command-type filter
Naval Organization window (Award Medal) Ships of the selected ship, fleet, sub-fleet, squadron or admin command hierarchy. Active commanders transported aboard those ships and commanders of formations embarked on them, plus the selected admin command’s commander. Duplicates removed
Galactic map (Award Medal) The selected system’s ships and the formations based at its populations. Active transported and formation commanders. Duplicates removed
Ground Forces window (Hierarchy Medal) The selected formation and its descendants, or the formations at the selected population. Active formation commanders

The Commanders window awards directly to the selected commander. The Formation Medal button of the Ground Forces window finds the selected formation’s active commander directly. Both use the same Award Medal window but ignore the checked command types. Both still award when citation entry is cancelled.

Example. The candidates are A, a ship commander, and B, a science officer. Only Ship Commander is checked, and the medal allows multiple awards. The bulk award gives the medal to A only. Repeating it gives A a count of two, and a third award still leaves two. An award to B from the Commanders window succeeds whatever boxes are checked.

The commander health and retirement update first works through a snapshot of the active commanders who are not story characters. It checks each for accidents, health and career retirement. Retirement moves a commander out of the active commanders without clearing medals. Health, retirement and casualties owns those checks.

Only after that phase does the update look at the assignments of Length of Service (15) conditions. A recipient must still be active, belong to the medal’s race, have completed service years at or above AmountRequired, and not hold that medal ID yet. This phase does not exclude story characters, NPR races or prisoners explicitly. It does not use measurement totals.

Completed service years = (current game time - career start) / year length, rounded down. The year is 31,536,000 seconds. The service test therefore compares completed whole years with the whole-number threshold.

Several service conditions on the same medal cannot give repeats through this scan, even with multiple awards enabled. The first award makes the commander count as already holding the medal. An active commander who already qualifies can receive a newly assigned service medal on the next scan without crossing any measurement threshold.

Example. A 10-year condition fails at 9.99 years and succeeds at 10 years if the commander is still active. A commander retired earlier in the same health phase receives no service award. A story commander who is still active can receive it. A second scan adds no further award.

Recalculating the promotion score adds award count x MedalPoints for each award record, using the medal’s current points. A 30-point medal contributes 30 at count one and 60 at count two. Negative points subtract. The same recalculation also adds the bonus-based score, a seniority bonus of 25 times the years since the last promotion, with fractions of a year counting, capped at 100 and rounded down, and 25 for a commander who holds any assignment. Awarding a medal does not itself force a recalculation or a promotion. Promotion, experience and career continuity covers the score in full.

The medal panel of a commander orders the medals by descending points, draws one image per award counted, and gives every copy the same stored reason as its tooltip. The abbreviation text uses the same order, leaves out empty abbreviations and puts the count before any count other than one, as in 2x ABC.

The race medal list in the Medal Management window counts awards across active commanders only. Its total is the sum of the counts. When repeats make that total larger than the number of recipients, a slash and the recipient count follow it. Retiring a decorated commander can therefore reduce the displayed total.

The commander status colour does not depend on medals. A commander in a lifepod shows gold first, then a prisoner shows magenta. Otherwise the game adds the commander’s health risk to an age term. The age term is half of (age minus 60), rounded down, for a commander older than 61, and zero otherwise. A total below 5 shows light yellow, below 8 orange, and anything higher red. Neither medal points nor award counts take part.

Saved table Stored columns and how the game rebuilds them
FCT_RaceMedals GameID, RaceID, MedalID, MedalName, MedalDescription, Abbreviation, MedalPoints, MultipleAwards and MedalFileName. The image is loaded again from the file
DIM_MedalCondition Shared condition data read from the database. The Medal Management window links medals to these conditions
FCT_MedalConditionAssignment GameID, MedalID and MedalConditionID. Loading skips a row whose medal or condition does not exist
FCT_CommanderMedal GameID, CommanderID, MedalID, NumAwarded and AwardReason. Loading attaches the record to the existing definition and commander
FCT_CommanderMeasurement GameID, CommanderID, MeasurementType and the decimal Amount. Loading restores the totals without replaying any award

Saving commanders replaces all of the game’s commander-related rows. It writes every active commander and only those retired commanders marked RetainRetired or Prisoner. Awards and totals follow that same saved commander set. When a game is loaded, a commander with active status joins the active commanders and any other status joins the retired commanders. Medal and measurement rows attach to a commander in either group and are skipped when the commander ID matches neither.

Definitions load only for races that exist, and the game tries to load each medal image. A missing image produces a message, and the definition can still be added. Commander medals load only when their medal definition exists.

Consequently, deleting a definition can leave an award in play that still adds points and shows images, and a save can still write that award’s medal ID. After reload the game skips the unresolved award. Removing only a condition assignment has no such effect on earned records.

Threshold eligibility, service years, medal images, display order and active-recipient tallies are worked out when they are used. Award records keep a count and a reason, but not the condition ID behind an award and not the time of each award. Commander history is a separate record.

Error handling undoes nothing. Recording a measurement changes the total before any award is given. An award changes the award record before the history line and the event are written. Save Current writes the text before it converts the points. When one of these steps fails, the game shows an error (Function #367 for recording a measurement, Function #368 for an award, Function #1067 for Save Current) and ends that step. A failed step can therefore still have changed state.

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