Scope and related references
Section titled “Scope and related references”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.
Definitions and relationships
Section titled “Definitions and relationships”| 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.
Creating and changing medals
Section titled “Creating and changing medals”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.
Automatic achievement awards
Section titled “Automatic achievement awards”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 AmountRequiredis 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.
Where measurements come from
Section titled “Where measurements come from”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.
Condition catalogue
Section titled “Condition catalogue”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.
Measurement types and producers
Section titled “Measurement types and producers”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.
Exploration and survey conditions
Section titled “Exploration and survey conditions”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 (
RuinIDabove 0) and abandoned installations (AbandonedFactoriesabove 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.
Ship combat conditions
Section titled “Ship combat conditions”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 hitas 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 alsoarmour 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.
Ground and boarding conditions
Section titled “Ground and boarding conditions”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.
Research and service conditions
Section titled “Research and service conditions”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
AmountRequireddirectly, 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
MeasurementType22, so a Lagrange point stabilisation does not advance them.
The shared award operation
Section titled “The shared award operation”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.
Manual award selection
Section titled “Manual award selection”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.
Length-of-service awards
Section titled “Length-of-service awards”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.
Effects and presentation
Section titled “Effects and presentation”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.
Persistence and lifecycle boundaries
Section titled “Persistence and lifecycle boundaries”| 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.
Concept map
Section titled “Concept map”- Definitions and relationships separate measurement totals, condition assignments and award records.
- Creating and changing medals covers the Medal Management window, export and the import stall.
- Automatic achievement awards hold the crossing test that turns a total into a medal.
- Where measurements come from names who receives each recorded amount.
- Condition catalogue lists all 72
DIM_MedalConditionrows and their producers. - The shared award operation sets the repeat count of 2, the reason and the logging.
- Manual award selection filters candidates by checked command type.
- Length-of-service awards compare completed years after the health phase.
- Effects and presentation show what an award changes in score and display.
- Persistence and lifecycle boundaries list what a save keeps and what reload drops.
- Cycle execution, completion and overflow produces the research measurements.
- Scientific personnel covers the scientists who receive them.
- Promotion, experience and career continuity owns the promotion score that medal points feed.
- Histories and medals explains commander history and the ship history step that never writes.
- Health, retirement and casualties runs the phase before the service scan.
- Lifepods and captivity holds the escape that records Ship Destruction Survived.
- Commander persistence and reload saves the commander set that awards follow.
- History and measurements compares history lines with measurement totals.
- Measurement type catalogue lists the same measurement types from the history side.
- Event type catalogue holds the Medal Awarded event, type 296.
- Exploration and first transit records star system and habitable world discoveries.
- Geological discoveries record minerals, ruins and .
- Survey locations and jump-point charting records jump point discoveries.
- Destruction aftermath and knowledge records kills, tonnage and damage.
- Automatic AMMs and interceptor resolution produces the double-counted interceptor kills.
- Element attacks and damage produces ground tonnage destroyed.
- Capture timing and ownership transfer records successful boarding combat.
- Troop formations covers the unload orders that never record a combat drop.
- Move action catalogue lists move actions 87, 201 and 203.
- Salvage and archaeology covers wreck salvage and installation recovery.
- Jump gate construction covers the gate that stabilisation creates.
- Lagrange point creation and motion covers the Lagrange points whose stabilisation no row reads.
- Independent and untractored ship selection picks the ships that receive fleet credit.
- Ranks and commander assignments covers the formation commanders who receive ground credit.
- Saving, loading and reconstructing references explains ID matching on load.
- Civilian governance and sectors keeps governor modifiers that medals do not touch.
- Ship readiness and recovery keeps readiness modifiers that medals do not touch.
Resources
Section titled “Resources”Related community documentation and developer posts. These may describe a different game version.