Class lifecycle and designer controls
Section titled “Class lifecycle and designer controls”The Class Design window selects components, calculates the hull and its capabilities, prepares loadouts, copies and locks designs, and admits classes to construction or refit. Component creation and the component technology formulas are covered in Component and ordnance design. This page describes what installing those definitions in a class does. The component definitions in FCT_ShipDesignComponents supply many sizes, capacities and recipes. A familiar component name does not establish a universal numeric value. The worked examples state their inputs explicitly.
Movement, damage, weapon fire, detection and resource expenditure in play are separate from design totals. See Movement and logistics, Ship power, class and detection and Production mechanics for those.
A class holds its installed components keyed by component ID, a mineral vector, three desired-loadout lists, identity and policy settings, and calculated statistics. Installed quantities (NumComponent in FCT_ClassComponent) are decimal numbers, although normal add and remove requests use whole numbers. Armour is a principal source of fractional quantities. A class is distinct from any individual ship, with its actual stores, damage and embarked units.
The New Ship Class button creates a class with a new ID, the owning race, the race’s first naval rank, the selected hull description and the race’s current crew design efficiency (CrewDesignEfficiency in FCT_Race). It sets the ship naming theme to theme 1 (Name Plus Number in DIM_NamingThemeTypes) and installs one each of component IDs 18, 25147 and 8. In FCT_ShipDesignComponents as shipped these are Bridge, Engineering Spaces and Crew Quarters. It then adds fuel component 43529 (Fuel Storage - Large) when the race has researched large fuel storage, otherwise 600 (Fuel Storage - Standard). The class joins the game’s class list. These are catalogue IDs, not a size selected from a fixed hull chassis. A new class starts with the name New Class. When the race’s class naming theme has an ID above 1, the class takes an available name from that theme. When the name is then empty, the class is named “Class #” followed by its ID. A race class theme of ID 0 or 1 supplies no themed name and nothing on the player creation paths replaces it, so the default New Class survives there. Ship class names traces each path.
The selected hull description is a label and grouping. Changing it updates the class and moves its entry in the class tree. That change does not select a fixed displacement, apply a hull size ceiling or recalculate capacities. Mechanical classifications come from the installed components, the final size and the flags. Class name, theme, prefix and suffix, hull numbering and notes are separate settings. Ship names for the class follow the ship naming theme. With theme ID 0 the ship takes the class name. With a theme ID above 1 the game requests an available themed name. Otherwise, or when no name results, the ship is named the class name, a space and a three-digit zero-padded number. That number is the count of ships built of the class plus the queued shipyard tasks for the class plus 1.
Selecting a class in the Class Design window recalculates its summary and refreshes the component tree, class members, refit comparison, capacity and loadout lists, and the summary and error text. Merely viewing a selected class can therefore replace quarters, adjust armour, add a bridge or strip components a station cannot carry. The Class Design window is not a read-only description of a saved design. The target speed and range band controls change the weapon summary display, not propulsion.
Policy settings include tanker, collier, supply ship, Conscript, No Officers, Senior C.O., obsolete, minimum retained fuel and MSP, refuel, resupply, maintenance, commander and point-defence priorities, and naming controls. They do not add the matching physical storage modules. Enabling Tanker while minimum fuel is zero sets minimum fuel to fuel capacity x 0.1, rounded up, and shows the message “Minimum fuel capacity set to N. This can be adjusted on the Miscellaneous tab”. Many policy checkboxes can still be changed on a locked class. No Armour has its own lock check.
Deleting a class is refused while any naval or civilian ships of the class exist, while a shipyard task has it as its class, or while a shipyard is tooled to it. The game offers obsoleting and hiding the class as the alternative. Deletion makes only these three checks. It does not scan every other possible reference to the class.
Available technology and component selection
Section titled “Available technology and component selection”The usable components tree is built from the component catalogue. Its ordinary path requires component types whose ShowInClassDisplay flag is set in DIM_ComponentType, excludes components flagged ShippingLineSystem in FCT_ShipDesignComponents, and requires that the race knows the component’s technology and has not marked it obsolete. Ticking the Obsolete check box changes the technology test to the existence of a race technology entry (a row of FCT_RaceTech). Prototypes are hidden unless the Prototypes check box is ticked. The obsolete test reads the race’s Obsolete flag in FCT_RaceTech for that technology. It does not perform new research. Technology knowledge covers how a race comes to know a technology.
Stored components at any population of the race can add to the tree. Ordinary stored additions still require known, nonobsolete technology. Use Alien Tech also adds stored definitions that have no race technology entry. These stored-component additions use their own tests and do not repeat every prototype, shipping line and display filter of the ordinary catalogue path. Seeing an alien component in the tree does not prove that the building population has enough of it. Construction checks that population’s stockpile separately.
The tree groups definitions by class summary type and component type. Fuel storage, maintenance storage and engineering sort by technology development cost. Troop transport sorts by technology type and then by the technology’s AdditionalInfo value. Most other definitions sort by name. A component type with the SingleSystem flag in DIM_ComponentType displays the first available definition directly as its tree entry. That display flag is distinct from a component definition’s SingleSystemOnly flag in FCT_ShipDesignComponents, which restricts how many copies a class can install.
Refresh Tech rebuilds the usable components tree from the currently known and created definitions and the selected visibility filters. It does not research technology or replace components already installed in classes. Armour and crew design efficiency updates have their own class buttons, described below. Component design, research and prototype creation are covered in Component and ordnance design.
Adding removing and updating components
Section titled “Adding removing and updating components”Adding a component (double-click or the space key on an entry of the usable components list) and removing one (the same on the class’s own component list) refuse changes when the class is locked, with the message “Class cannot be modified while locked”. Both apply the selected whole-number quantity and refresh the summary. Installing a component, which other routes such as class creation from a template also do, does not check the lock, race technology, a displacement ceiling or the design warnings. Those restrictions belong to particular windows or to the recalculation that follows. A missing component or a zero quantity adds nothing.
Installation applies these rules:
| Rule | Actual scope |
|---|---|
Single-system-only (SingleSystemOnly) or spinal (SpinalWeapon) component |
A request above one becomes one. Another copy of the same definition is refused when it already has a positive count, with the message “Only a single component of this type can be added to a class design”. |
| Engine, refuelling system, shield generator, jump point stabilisation | Refuse a second different definition of that component type. More copies of an identical installed definition are added before these checks run, subject to that definition’s own single-system flag. |
| Active jammer, fire control jammer and missile jammer technology families | Refuse a new distinct definition in the same jammer family. |
| Military hangar and commercial hangar | Refuse mixing the two component types. |
| Jump drive | Refuse a new definition when any jump drive definition is already installed. Increments of an identical definition are handled earlier. |
| Player spinal weapons | For a new distinct definition, refuse when any spinal weapon is already installed. NPR races skip this cross-definition check. |
The order of these checks matters. More copies of an already installed definition are handled before the type checks. The message “Only one jump drive can be added to a class” therefore does not mean that installation counts jump drives in total independently of the component flags.
Removing subtracts the requested quantity when more remain, otherwise it removes the component entry. Crew quarters and armour can be removed like any other entry, but the next recalculation recreates those automatic requirements. Update Armour removes the current armour entry so that the next recalculation chooses the best researched definition. Update CDE (crew design efficiency) copies the race’s current factor into the class and recalculates. Both buttons require an unlocked class.
Units aggregate totals and recalculation order
Section titled “Units aggregate totals and recalculation order”One hull space (HS) is 50 tons. Class size is a decimal number of HS. The header shows size x 50 rounded up, in tons, while the Class Design window also shows the exact HS to four decimal places. Fuel is in litres. Cargo, troop and repair capacities use the displayed tons their components define. Hangar capacity is held in HS and displayed as HS x 50 tons. Magazines use missile size points. MSP (maintenance supply points) are a separate resource.
The aggregate pass resets and sums these totals:
size = sum of (component size x quantity)
cost = sum of (component cost x quantity)
crew = sum of whole part of (component crew x quantity)
HTK = sum of whole part of (component HTK x quantity)
The truncation to whole numbers happens for each entry, not once after summing. The highest component cost tracks the largest single-component cost among non-armour components, without multiplying by quantity. The summary resets it before the aggregate passes. When planned deployment is below 3 months, crew becomes crew x cube root of deployment / cube root of 3, rounded down. Crew is then at least 1.
The order of the overall summary matters:
- Reset derived values, warnings and minerals. Strip the components a No Armour class cannot carry.
- Aggregate totals. Set the preliminary commercial or military and morale-check flags.
- Replace crew quarters.
- If the size stored at that moment exceeds 22 HS and component 18 (Bridge) is missing, add it.
- Aggregate again. Then repeat armour recalculation and aggregation for the fixed number of passes.
- Set the fighter flag when size is 10 HS or less. Aggregate capabilities and mineral recipes component by component.
- Derive cross section, the power warning, point-defence optimisation, main function and damage allocation. Calculate maintenance life when the class is military at that moment.
- Apply the remaining warning checks, including commercial engineering reclassification and the small craft refuelling invalidation. Format the summary, rank and logistics text.
- Add passenger capacity into colonist capacity after the text is produced.
A value calculated early can therefore reflect the classification or capacities at that stage, rather than a final state that does not depend on order.
Crew quarters deployment and command spaces
Section titled “Crew quarters deployment and command spaces”The class stores planned deployment in months (PlannedDeployment in FCT_ShipClass, default 3) and a crew design efficiency multiplier (CrewDesignEfficiency, default 1). Smaller efficiency factors reduce the required quarters tonnage. The Class Design window displays the efficiency as (1 - factor) x 100%. The deployment box accepts a positive decimal that parses correctly and requires an unlocked class.
Ordinary required quarters capacity is:
required quarters capacity = (crew + flight crew berths) x cube root of planned deployment x class crew design efficiency.
Flight crew berths = whole-number(sum of (hangar and commercial hangar ComponentValue x quantity)), not the crew of the craft actually loaded. Capacity here is quarters tonnage, not a direct count of people. The requirement is first raised to at least 1. For deployments below 3 months the game then replaces that result with (crew + flight crew berths) x cube root of 3 x race current crew design efficiency. This replacement happens after the minimum-of-1 check. The reduced aggregate crew and the race’s current factor both matter in that case.
Automatic allocation considers every crew quarters definition in the whole component catalogue, without a race technology test. It excludes definitions costing less than 1 BP unless the required capacity is below 5. It sorts the rest by ComponentValue, largest first, removes the existing quarters, then takes whole-number(remaining / value) of each definition in turn. The last definition rounds its count up when needed. The capacity added and the amount taken from the remainder are both truncated to whole numbers. This is a largest-first greedy split, not a cost optimiser or a player-chosen quarters mix.
The crew capacity panel uses these figures:
tons per crewman = cube root of deployment x class efficiencycapacity per HS = 50 / tons per crewmanrequired crew HS = crew / capacity per HSspare berths = (quarters capacity / 50 - required crew HS) x 50 / tons per crewman, rounded down
The panel does not add flight crew berths into that displayed required HS, even though allocation makes room for them. A separate quarters value total adds each installed quarters definition’s whole ComponentValue once and does not multiply by installed quantity.
Races with biological ships (BioShips in FCT_Race) have a late exception in the summary. Crew becomes zero and the summary prints “Biological Organism - No Crew, Maintenance or Fuel Required”. This happens after quarters allocation, the armour passes and capability aggregation. It does not itself clear the calculated fuel or MSP capacities or remove quarters.
Bridge insertion tests size above 22 HS before the post-quarters aggregate, while the final missing-bridge warning tests final size above 20 HS. Existing bridges are not deleted automatically for small craft. Control rating sums each command and control definition’s whole ComponentValue once. A final size of 20 HS or less with zero control rating gets rating 1.
Command rank starts at grade 1. Survey sensors, jump drives and military hangars raise it to at least grade 2. A positive protection value sets grade 2, then a size of 20 HS or less forces grade 1. Specific command components then impose minimum grades:
| Component ID | Name as shipped | Summary tag | Minimum grade |
|---|---|---|---|
| 65736 | Auxiliary Control | AUX | 2 |
| 65739 | Science Department | SCI | 2 |
| 65740 | Primary Flight Control | PFC | 2 |
| 65737 | Main Engineering | ENG | 3 |
| 65738 | Combat Information Centre | CIC | 3 |
| 225 | Flag Bridge | FLG | 3 |
| 65902 | Diplomacy Module | DIP | 3 |
ID 225 also marks the class as having a flag bridge (FlagBridge). Senior C.O. (SeniorCO) raises the resulting grade by one. The grade is resolved through the race’s naval rank table. No Officers does not suppress this summary calculation.
Armour structural shells and iteration
Section titled “Armour structural shells and iteration”Armour recalculation first raises thickness to at least 1. With current size S and thickness t, it computes in double precision:
surface area = 4 x pi x (0.75 x S / pi) to the power 2/3
armour volume = t x surface area / 4
armour width = whole part of (armour volume / t), at least 1
armour quantity = armour volume / whole part of the armour ComponentValue
The quantity is stored as a decimal, so the installed count keeps its fraction. Armour HS, cost, HTK and crew then follow the ordinary definition x quantity rules. The volume is not necessarily the component HS. Width truncates rather than rounds.
An armour definition already installed stays in use. When none is installed, ordinary classes take the best researched armour. That is the researched armour definition with the highest cost, not a separate fixed ranking of material strength. No Armour classes take the baseline Structural Shell instead. Update Armour removes the old definition before the next selection.
The summary performs max(10, armour thickness x 3) - 1 armour and aggregate passes. There is no tolerance-based convergence test, early stop or exact algebraic solution. Every pass includes the preceding armour in size, so the shell changes the next shell calculation. The fixed pass count and the decimal and double conversions matter when reproducing exact HS at a threshold. Crew quarters are allocated before these passes and are not reallocated during each pass.
No Armour is destructive. With No Armour set, the game removes every armour, engine and military system (MilitarySystem) entry and sets thickness 1. With No Armour off, it removes component ID 65275 (Structural Shell). The summary runs this every time, so a No Armour class’s shell is removed and rebuilt during recalculation and engines cannot survive the pass. No Armour therefore means a structural shell design with restricted equipment, not an ordinary hull with zero thickness.
Propulsion fuel and nominal range
Section titled “Propulsion fuel and nominal range”For the normal class with one engine definition:
engine power = sum of (engine ComponentValue x quantity)
maximum speed = whole part of (engine power / size x 1000), at most 270000 km/s
class thermal = engine power x engine stealth rating
fuel efficiency = the engine's fuel efficiency
fuel capacity = sum of whole part of (fuel storage ComponentValue x quantity) litres
full-power hours = fuel capacity / (engine power x fuel efficiency)
maximum range = full-power hours x maximum speed x 3600 km
Maximum speed starts at 1 and only an engine overwrites it, capped at 270,000 km/s. An engineless station can therefore show 1 km/s in the class summary. This does not mean it has an engine or can move on its own. Several different engine definitions brought in outside the ordinary add path would each overwrite the efficiency and stealth values in turn. Propulsion, speed and fuel covers how these values act in play.
The fuel line prints the range in billion km. The endurance shows in whole hours when it is under three whole days, otherwise in whole days. Engineless range shows N/A in the text, and the maximum range figure is zero. The nominal range assumes full-power design totals, not the fuel actually aboard, shield fuel use, damage, towing or a chosen throttle. Those differences in play belong in Movement and logistics.
Engineering maintenance stores and repair
Section titled “Engineering maintenance stores and repair”Let E be sum of (engineering ComponentValue x quantity), and S and C the final class size and cost. For a positive engineering total the summary uses an engineering coverage constant of 0.04:
engineering coverage factor = S x 0.04 / E
base failure chance = S / 2 x engineering coverage factor
engineering MSP = whole part of ((1 / engineering coverage factor) x C / 2)
maintenance supplies = engineering MSP + sum of whole part of (maintenance storage value x quantity)
Until an engineering component is counted, the base failure chance (BaseFailureChance in FCT_ShipClass) defaults to S x 10. Engineering also adds its total value, truncated, to the damage control rating (DCRating). Military and commercial damage control components add their own truncated total values. A maintenance module is separate. It does not substitute for engineering and does not add onboard MSP in this pass.
Design AFR (annual failure rate) is the base failure chance shown as a percentage. The IFR text is base failure chance / 72, rounded to 1 decimal place, as a percentage. Instant DCR is min(50, whole-number(DCRating x 200 / S)). Max Repair is the highest non-armour single-component BP cost, shown as MSP. It is not the cost of replacing all copies or of repairing all damage.
Damage allocation leaves out armour and gives every other entry a whole-number weight of component size x quantity, rounded up. The running totals become each entry’s ChanceToHit threshold in FCT_ClassComponent. Electronic components also enter the electronic table (ElectronicCTH). Maintenance life weights single-component cost by each threshold difference divided by the total roll (MaxDACRoll). The result is the average repair cost per failure, A. Damage in combat uses the same thresholds.
For years y = 1 to 200, projected annual use is A x base failure chance x y / 100. Full years accumulate while they fit within onboard MSP. In the first year that exceeds capacity, life becomes y - 1 + (MSP - cumulative prior use) / annual use, rounded to 2 decimal places. When none of the 200 years exceeds capacity, life stays at zero. Zero is not a documented infinite-life marker. The summary’s 1YR requirement is A x AFR / 100, and 5YR is exactly fifteen times that first-year use.
Commercial classes with E below 1 receive the engineering warning and become military after the earlier maintenance-life decision. That recalculation can therefore show a life estimate that was not refreshed. Engineering and MSP capacities are design values, not a record of a ship’s current supplies. See maintenance supply output for manufacture and replenishment, and maintenance state for maintenance in play.
Cargo accommodation hangars and service modules
Section titled “Cargo accommodation hangars and service modules”Below, V means the component’s ComponentValue and n its installed quantity. Truncations to whole numbers happen per definition. Not every capability stacks the same way.
| Capability | Class calculation |
|---|---|
| Cargo, fuel, bio-energy, passenger capacity | Add whole-number(V x n) for the matching types. |
| Colonist capacity | Add whole-number(V x n) for colonist transport. After the summary text is formatted, passenger capacity is added as well. |
| Troop capacity | Add whole-number(V x n) only while the transport technology family matches that of the first troop transport module counted. A different family warns and adds no capacity. |
| Hangar capacity | Add V x n for military or commercial hangars. Commercial hangars also mark the class as having a commercial hangar. |
| Magazine and decoy capacity | Add V x n from magazines, missile launchers and fighter pod bays to ordinary capacity. Decoy missile launchers add separately to decoy capacity. |
| Cargo shuttle strength | Set to whole-number(V x n) for each entry in turn, not added across definitions. |
| Refuelling rate | Set to whole-number(V x n) litres per hour. An invalid small craft system can later reset it to zero. |
| Ordnance transfer rate | Set to the whole part of V MSP per hour, independent of quantity. |
| Ordnance transfer hub | Set to the whole quantity, capped at one. |
| Mobile repair capacity | Add whole-number(V x n) tons. |
| Harvesters, terraformers, orbital miners, maintenance modules | Set to the whole quantity of the relevant entry, not added across definitions. |
| Salvage | Set the module count to the whole quantity and the rate to whole-number(V x n) tons per day. |
| Jump point stabilisation | Set to the whole part of V days, without a quantity multiplier. |
| Tractor beam | Set STSTractor = 1. A quantity above one warns. |
| Recreational module | Mark the class as having recreational facilities. No capacity is summed and deployment duration is not replaced here. |
| Diplomacy and ELINT | Diplomacy sets the whole part of V. ELINT sets whole-number(V x n). |
Colonist transport with the standard berths special function adds ordinary colonist berths and marks the class as an ark ship (ArkShip). Colonist transport with no special function is displayed as cryogenic berths. Passenger modules first show separately, then their people are folded into colonist capacity at the end of recalculation. Main function assignment therefore sees colonist capacity before the merge, while later uses can see the merged value. Recalculation resets worker capacity (WorkerCapacity) to zero and no component type sets it, so the summary’s Habitation Capacity line never appears. Do not infer working orbital habitat capacity from the presence of that column alone.
The nominal module output text uses race rates from FCT_Race. Harvesters show quantity x FuelProduction litres per year. Terraformers show quantity x TerraformingRate atmospheres per year. Orbital miners show quantity x MineProduction tons per mineral per year. Maintenance modules show quantity x MaintenanceCapacity tons of supported ships. These are displayed class capabilities. Actual output can depend on location, orders and conditions in play, as described in Sorium harvesters, Terraforming mechanics and Salvage and archaeology. Repair capacity and maintenance support capacity are distinct from onboard engineering and MSP.
The nominal load time, in seconds, starts with cargo capacity x 20, truncated. It adds colonist capacity x 10 with another truncation, then adds troop capacity x 20. When shuttle strength is positive, whole-number division by cargo shuttle strength x CargoShuttleLoadModifier follows, with the modifier taken from the race. This is a nominal full-capacity loading estimate, not a fixed delay paid by every transfer. Cargo loading covers transfers in play.
Weapons power sensors shields and jump systems
Section titled “Weapons power sensors shields and jump systems”Component and ordnance design explains how weapons, reactors, sensors, jump drives and shields get their properties. Ship power, class and detection explains recharge, shield operation, signatures and detection in play. The Class Design window aggregates those definitions as follows.
| Quantity | Design operation |
|---|---|
| Reactor power | Sum reactor V x n. |
| Required power | Sum RechargeRate x n for lasers, particle beams, meson cannons, railguns, plasma carronades, high power microwaves and Gauss cannons. |
| Protection value (PPV) | Sum the installed HS of those direct-fire types plus missile launchers and fighter pod bays. CIWS does not count toward this sum. |
| Shield strength | Set to whole-number(V x n). The shield recharge text comes from the first shield definition’s RechargeRate, without summing quantity. |
| Thermal and EM passive strength | The largest whole component value of that sensor type, not a total over quantity. ELINT can later raise the EM sensor strength. |
| Active strength | The largest whole active search V. |
| Sensor size | Add the whole part of the component size once per thermal, EM or active search definition, not multiplied by count. |
| Gravitational and geological survey | Add whole V x n for gravitational and decimal V x n for geological. |
| Beam fire control maximum range | The largest whole ComponentValue of direct fire controls. |
| ECM strengths | Keep the largest values separately for active jammers, fire control jammers and missile jammers. Accepted values are truncated. |
| Jump | Set JumpRating and JumpDistance from the definition. The commercial jump drive special function marks the class as having a commercial jump drive. Quantity does not multiply those values. |
| Cloak | Apply CloakRating only when the component’s V is at least the final size. Otherwise warn. |
| Cross section | max(size x SensorReduction, 0.3). The floor of 0.3 HS is the signature of a size 6 missile. |
Required power above reactor power adds a warning, not a refusal to keep the design. Jump capacity below size warns. Cloaks that are too small warn and do not apply their reduction. These checks do not depend on how many missiles the desired loadout holds. A summary can describe weapons and fire controls without any of them being assigned to firing groups in play. The jump-point network page covers where jump drives and stabilisation modules work.
Point-defence optimisation starts by treating both the weapons and the fire controls as suitable. A listed direct-fire weapon with a power requirement above 2 x recharge rate, or a launcher or pod bay larger than one HS, makes the weapons unsuitable. A beam fire control with no special function, or a missile fire control with resolution above 1, makes the fire controls unsuitable. When both stay suitable, the class is marked point-defence optimised, including when it has no weapons or fire controls at all. It is a classification flag, not proof of usable point defence. Point-defence modes covers how point-defence weapons engage.
Classification roles and stations
Section titled “Classification roles and stations”Recalculation starts with the class commercial. A deployment below 3 months or any military system component makes it military. A military system also requires morale checks. Thermal, EM or active search sensors individually larger than one HS make it military independently of that flag. A final size of 10 HS or less sets the fighter flag. Commercial status, the fighter flag, the hull description and the assigned main function are distinct classifications.
Main function assignment applies a priority order rather than several roles at once. Armed classes, those with a positive protection value, first compare sensor and hangar HS against the protection value. Gravitational survey sensor HS above the protection value and at least the geological sensor HS gives Survey Ship. Geological survey sensor HS above the protection value also gives Survey Ship. Military hangar HS above the protection value gives Carrier. Otherwise an armed class above 20 HS is a Warship, above 10 HS is a FAC, and 10 HS or less is a Ground Support Fighter when its fighter pod bay HS exceeds both its missile launcher HS and its beam weapon HS, otherwise a Fighter. For classes without protection value, the order is carrier (hangar capacity above 20 HS), gravitational survey, geological survey, troop transport, stabilisation ship (jump point stabilisation), fuel harvester, terraformer, orbital miner, salvager, diplomatic ship, intelligence ship, colony ship, freighter, liner, recreational ship, maintenance ship, orbital habitat, space station (No Armour set), scout (total sensor size above 5) and tug (tractor beam). The other roles in that list each need a positive value of their capability. Earlier conditions win. Main function precedence gives the downstream effects.
Space station construction depends on NoArmour = 1, not on the hull description text or the lack of an engine alone. The industrial project list for space stations accepts the race’s own nonobsolete No Armour classes that have no prototype components. It does not require the Space Station main function or commercial status. A station with mining or maintenance modules can have that service as its main function and still appear in the station construction list. The fighter project list separately uses size 10 HS or less, own race, nonobsolete and no prototypes.
Station projects use Construction-category industry and the class BP and mineral recipe, and they lock the class. No Armour stripping removes engines and military components before the design totals. Commercial classification still separately requires at least one engineering value unit, so “eligible for industrial station construction”, “commercial for maintenance” and “station main function” need not all agree. Ordinary armoured ships use shipyards, subject to yard tooling, type and capacity. Lacking an engine alone does not put a class on the station list. See production and shipyard work.
Warnings and hard admission checks
Section titled “Warnings and hard admission checks”The Class Design window shows the design warnings in its error text box. Appearing there does not make each message a hard construction block. The class summary has these warning triggers:
| Trigger | Message | Result beyond the warning text |
|---|---|---|
| Jump drive’s supported size below hull size | Jump engine is too small for this design | Does not remove the drive. |
| Different troop transport technology families | Different types of troop transport modules cannot be added to the same ship class | Leaves the mismatching entry out of troop capacity. |
| Tractor beam quantity above 1 | Only one tractor beam per ship is allowed | STSTractor remains one. |
| Cloak’s supported size below hull size | Cloaking Device Ship Size is too small for this design | Does not apply that cloak reduction. |
| Reactor power below required power | Reactors are generating insufficient power for the weapons (reactor power/required power, with the two numbers filled in) |
Keeps components and totals. |
| Commercial engineering total below 1 | Commercial designs require at least one HS (50 tons) of Engineering | Changes the class to military. |
| Beam fire control without listed beam weapons, or the reverse | Ship has direct fire control but no direct fire weapons, or Ship has direct fire weapons but no direct fire control | Keeps components. |
| Missile fire control without missile launchers, or the reverse | Ship has missile fire control weapons but no missile launchers, or Ship has missile launchers but no missile fire control | Keeps components. Fighter pod bays do not count as missile launchers for this check. |
| No component 18 bridge with size above 20 | Ship has no bridge | Keeps the design. |
| Tanker, zero minimum fuel, positive engine power | Minimum fuel set to zero | Keeps the policy settings. |
| Cargo 25000 or more, colonists 10000 or more, or troops 5000 or more, with no shuttle strength | Ship has cargo capacity but no cargo shuttles, Ship has colonist capacity but no cargo shuttles, or Ship has troop capacity but no cargo shuttles | Keeps capacity. |
| Refuelling rate above 0 and below 20000 on size above 20 | Small Craft Refuelling System can only be used on ships of 1000 tons or less | Sets the refuelling rate to zero. |
| Non-decoy template ordnance size exceeds the magazine | Total ordnance exceeds magazine capacity | Keeps the template and appends the warning. |
Hard restrictions sit at their own points. They are the lock in the Class Design window, the incompatible-system checks at installation, the ban on prototypes for construction and refit, missing alien components at the building population, yard selection and tooling rules, and the deletion checks. The Shipyards tab of the Economics window checks the selected class and destination, prototypes and alien stock, and a duplicate themed ship name. For refits it also checks the selected ship, a different source and target class, and a nonzero BP cost. It does not use the design warnings as one overall valid or invalid gate. Station project admission separately checks alien stock and prototypes. Other routes that create shipyard tasks need not repeat every check of that tab. Player admission and tooling compatibility covers the yard side.
The alien stock checks treat a component as alien when the race has no technology entry for its technology. Construction compares each full installed quantity against stock at the selected population. Refit compares only positive increases of the matching component ID. These checks match exact component definitions, not an equivalent BP or mineral credit. Prototype detection treats every Prototype value other than 0 (not a prototype) as a prototype, which covers 1, 2 and 3 (prototype, future technology prototype and research prototype).
Ordnance small craft and ground loadouts
Section titled “Ordnance small craft and ground loadouts”Desired loadouts live in three lists, for missile ordnance, small craft and ground formations. They are separate from installed class components and do not enter hull BP, size or mineral sums. The free space figures are:
free magazine space = magazine capacity - sum of (non-decoy missile size x amount)
free decoy space = decoy capacity - sum of (decoy missile size x amount)
free hangar HS = hangar capacity - sum of (craft class size x number)
free troop tons = troop capacity - sum of (formation total size x number)
Decoy missiles are those with ShipDecoy = 1. These free space figures can go negative after capacity changes. The game does not delete desired loadout entries automatically.
Adding ordnance clamps a request to whole-number(remaining capacity / missile size) and adds or increments the entry only when the result is positive. Missiles with ShipDecoy zero use ordinary capacity, and nonzero values use decoy capacity. Craft and formation additions likewise truncate to the number of whole units that fit. Craft addition can keep an entry with a count of zero, because unlike ordnance it has no final positive-count check. Formation addition checks for a nonzero count, not a positive one. These rules do not make negative requests a useful, supported operation of the Class Design window. Removal subtracts from or deletes the selected entry.
The available craft list defaults to classes of 20 HS (1,000 tons) or less, not only fighter classes of 10 HS or less. The Larger Parasites Allowed check box raises the maximum to the carrier’s hangar capacity when that is above 20 HS. The list filters by owner and, optionally, obsolescence, not by commercial hangar compatibility or the fighter flag alone. The loadout enforces total capacity, not every docking rule in play. Carriers and parasites covers hangar operations.
When a ship takes its ordnance from the class, the game copies the desired amounts into new ship ordnance entries. Restoring decoys from the class template is a separate step. Templates are instructions used by particular creation and restoration paths, not items already carried. Production, inventory transfers, small craft construction and ground formation production have their own stock and cost paths in Production mechanics. Formations themselves are organised as described in Ground force organisation.
Cost minerals and construction estimates
Section titled “Cost minerals and construction estimates”Class BP cost is the decimal sum of (component cost x quantity), including automatic quarters and fractional armour or shell. Each summary clears the class minerals, then adds all eleven stored mineral costs of each component, the Duranium to Gallicite columns of FCT_ShipDesignComponents, multiplied by quantity. There is no universal conversion from hull tons to minerals and no class-level assumption that all cost is Duranium. The component definition carries the recipe. Desired missiles, craft, ground formations, current fuel and MSP are separate from these component sums.
The Class Design window’s nominal build time in years uses a size normaliser of 100 and a commercial size multiplier of 0.25:
scaled size = size / 100 military
scaled size = size x 0.25 / 100 commercial
annual rate = (1 + (scaled size - 1) / 2) x race shipbuilding rate
build years = cost / annual rate
The race shipbuilding rate is ShipBuilding in FCT_Race. The estimate does not select an actual shipyard, number of slipways, queue position, available minerals or stored components. Station industry projects and fighter production use category industry rather than this estimate as their actual completion mechanism. Stored components and shipyard modifiers can change the actual work and accounting, as described in Production mechanics.
Locking copying upgrades and refit compatibility
Section titled “Locking copying upgrades and refit compatibility”The Lock Class button locks the class (Locked in FCT_ShipClass) and then reads Unlock Class. Unlocking with that button works only in Spacemaster mode, otherwise the game shows “Classes can only be unlocked in Spacemaster Mode”. Construction and refit task admission and industrial station or fighter project creation also lock classes. Shipyard retooling can lock its target class. The lock protects structural changes in the Class Design window but is not enforced by every game action that changes a class. The normal way to evolve a design is therefore to copy the class and edit the new unlocked copy.
Copying starts from a full duplicate of the class. The copy gets a new ID and “ - Copy” appended to its name, unless a known alien class name is used. Its built count and its source-class link (OtherRaceClassID) are cleared, it is unlocked, and the mineral record and each installed component entry are duplicated. The loadout lists are created fresh. An ordinary same-race copy reproduces all three loadouts while sharing the component, missile, craft and formation definitions. A copy for another race changes the owner, clears rank and shipping line, and leaves the three loadout lists empty. The game then records the original class ID as OtherRaceClassID. The other-race copy recalculates the summary of the source class, not of the new copy, so it is not a guaranteed immediate recalculation of the copy.
Refit BP first prices only positive component increases, matched by component ID. Let that added-component BP be A, source size S and target size T:
refit BP = A x 1.2 + abs(T - S) / S x A.
Removed components give no negative BP credit here. The size penalty uses A before the overhead. When a mineral record is supplied, it receives each added component recipe at the quantity difference rounded to 1 decimal place, while the BP calculation uses the unrounded difference. The 20% overhead and the size penalty add nothing to that mineral record. Even fractional armour changes can therefore produce slightly different BP and mineral rounding.
The list of eligible refit source classes considers the race’s other classes that are nonobsolete, not shipping line classes and not captured. A commercial target requires commercial sources. A military target does not apply that filter. Target size must be 80% to 120% of source size, inclusive, and refit cost must be at most target cost / 5.
The refit comparison display is a separate calculation. For each direction it lists the classes in the matching size interval and marks SY “Yes” when refit cost is at most source cost / 5 and commercial status matches. Its broader list does not repeat the obsolete and captured filters of the eligible source list. “Listed as comparable”, “eligible source” and “can use original tooling” are therefore not one 20% rule. Actual yard task eligibility, capacity, retooling and task execution are covered in shipyard work and Shipyard development and ship work.
Reusable templates and persistence
Section titled “Reusable templates and persistence”A class template is a reusable design recipe, distinct from the desired embarked loadouts. Creating one records the hull ID, name, armour thickness, deployment, crew efficiency, service and crew flags, retained-store and priority settings. Each class component becomes a row of FCT_ClassComponentTemplate. Standard technology that belongs to no race uses a StandardComponentID. Race-designed definitions reuse or create a component recipe in FCT_ShipComponentTemplate. Quantity is truncated to a whole number, including fractional armour. The template does not copy the three embarked-loadout lists, notes, prefix and suffix, built count or lock state.
Template creation writes the component’s technology ID (TechSystemID) into StandardComponentID. Class creation from the template later searches for a component whose SDComponentID equals StandardComponentID, while the template’s research details look the same value up as a TechSystemID. The game uses those two ID kinds differently. Standard catalogue entries may align, but do not assume that arbitrary technology and component IDs are interchangeable.
Creating a class from a template allocates a class ID, owner and first rank, uses the template’s hull with hull description 0 as the fallback, sets the name and theme, restores the recorded flags and policies, and resolves the component recipes. Standard definitions acquire their technology, with prerequisites, as instant research. Custom recipes reuse an already known matching definition or create the component, with the research-required-technology option deciding whether its technology must still be researched. Missing recipes or standard definitions are skipped. Components go in through the ordinary installation rules and the class joins the class list. The Class Templates tab of the Class Design window offers the research-required-technology choice and refreshes the relevant trees and the starting technology balance. The result is not a byte-for-byte clone of an existing class.
A save keeps both the inputs and many derived values:
| Data | Storage and loading |
|---|---|
| Class identity, flags, policies, design totals, lock state and owner references | FCT_ShipClass, saved and restored with the classes. |
| Decimal installed quantities and damage thresholds | FCT_ClassComponent, restored by component ID once classes and components exist. |
| Class mineral vectors | FCT_ClassMaterials, restored as saved rather than recomputed during loading. |
| Desired ordnance | FCT_ClassOrdnanceTemplate. |
| Desired craft and ground units | FCT_ClassSC and FCT_ClassGroundTemplates. |
| Reusable class and component recipes | FCT_ShipClassTemplate and FCT_ClassComponentTemplate, saved and restored as catalogue tables. |
Loading a game restores classes, components, class materials and ordnance and craft records in that order, then ground templates after their definitions. Loading restores the saved values and references. Opening the Class Design window can then run the full recalculation described above. A stored total and a freshly recalculated total are therefore separate observations. Object identity and reload covers how IDs carry across a save.
Worked examples and mechanics caveats
Section titled “Worked examples and mechanics caveats”All examples are synthetic and use already-final hull totals unless stated otherwise. They show arithmetic, not a recommended class or a claim that a particular game’s technology supplies those exact definitions.
Propulsion and displayed range
Section titled “Propulsion and displayed range”Take size 100 HS (5,000 tons), engine power 500, fuel efficiency 0.2 and fuel capacity 1,000,000 litres. Speed = whole-number(500 / 100 x 1000) = 5,000 km/s. Hourly fuel = 500 x 0.2 = 100 litres. Endurance = 10,000 hours. Range = 10,000 x 5,000 x 3600 = 180 billion km. The summary shows 416 whole days at full power. With stealth rating 0.5, the class thermal value is 250.
Quarters and armour pass arithmetic
Section titled “Quarters and armour pass arithmetic”With crew 100, no flight berths, deployment 8 months and class efficiency 0.8, required quarters capacity = 100 x 2 x 0.8 = 160. Given eligible quarters definitions worth 100 and 30 capacity, largest-first allocation takes one 100 and then two 30, exactly 160. This assumes those are the only eligible definitions and that their costs pass the filter.
For one armour pass starting at size 100 and thickness 2, surface area / 4 is about 26.046985, volume about 52.093971 and width 26. With a whole armour ComponentValue of 5, the fractional armour quantity is about 10.418794. If that definition has size 1, the next aggregate includes those 10.418794 HS, which changes the following pass. Thickness 2 means nine passes, not “repeat until unchanged”.
Engineering and maintenance life
Section titled “Engineering and maintenance life”Take final size 100, cost 1,000, engineering value 4 and explicit storage of 100 MSP. Coverage = 100 x 0.04 / 4 = 1. AFR = 50%. Engineering MSP is 500 and total MSP is 600. If the damage-weighted average repair cost is 20, first-year use is 10 and the five-year sum is 150. Ten years sum to 550 and year 11 needs 110. Estimated life = 10 + 50 / 110, rounded to 2 places, is 10.45 years. The assumed weighted average is an input to this example. In a real design it comes from the class damage allocation table.
Loadout capacity and refit accounting
Section titled “Loadout capacity and refit accounting”With magazine 30 and missiles of size 4, a request for ten adds only seven, leaving 2. A hangar of 40 HS with craft of 12 HS likewise admits three, leaving 4 HS. Those desired craft do not add their own BP or tonnage to the carrier’s component cost or size.
For source 100 HS and target 110 HS, if the positive component increases cost 100 BP, refit BP = 100 + 20 + 10 = 130. Suppose source cost 600 and target cost 800. The eligible-source threshold based on target cost, 160, admits it. The comparison display’s threshold based on source cost, 120, does not mark SY “Yes”. All other filters are assumed satisfied. Minerals cover the added component quantities. No mineral recipe is added for the 30 BP of overhead and size premium.
Boundaries to preserve when reading a design
Section titled “Boundaries to preserve when reading a design”- Use exact final HS for the 10, 20 and 22 HS boundaries, not rounded displayed tons.
- A module count, a capacity sum, a maximum strength and a last-definition assignment are different operations. Not every repeated component stacks its headline value.
- Warning text can coexist with a saved, buildable design, and some warnings also change computed values.
- Structural shells remain automatic armour-type entries even when the Class Design window says No Armour.
- Commercial maintenance classification, industrial station eligibility and main function are separate tests.
- Saved design totals, desired loadouts and actual ship stores and capabilities are separate layers.
Concept map
Section titled “Concept map”- Class Design window refresh, selecting a class reruns the full summary.
- New, copied and deleted classes, default components, names and deletion checks.
- Policy settings and tanker reserve, the policy check boxes and the default minimum fuel.
- Component tree, which known, obsolete, prototype, stored and alien components appear.
- Installation rules, which combinations installation refuses.
- Update CDE, copying the race’s crew design efficiency into the class.
- Recalculation order, units, aggregate totals and the summary sequence.
- Crew quarters and command, automatic quarters, bridge, control rating and rank.
- Armour geometry, the shell formula, best armour and the fixed pass count.
- Propulsion and range, speed, fuel and range text.
- Maintenance life, engineering, MSP, failure rates and damage allocation.
- Capability sums, how each module type stacks and the nominal load time.
- Weapons and sensors, power, protection value, sensors and the point-defence flag.
- Main function and stations, classification and the station and fighter project lists.
- Design warnings, warnings set apart from hard admission checks.
- Alien stock and prototype tests, the admission predicates and instant damage control rating.
- Loadouts, desired ordnance, craft and formations.
- Available craft list, the 20 HS default and Larger Parasites Allowed.
- Cost and build time, BP, the eleven-mineral recipe and nominal build years.
- Lock and refit, locking, copying, refit cost and source eligibility.
- Templates and saves, reusable recipes and what a save keeps.
- Component and ordnance design, how installed components get their values.
- Technology to deployment, from researched technology to a working ship.
- Research and scientific personnel, how component technology becomes known.
- Production mechanics, building stations, fighters and components from class recipes.
- Shipyard construction and refit, yard work paid from class cost and minerals.
- Shipyard development and ship work, yard tasks, tooling and admission.
- Species engineering, another design-to-deployment path in the same branch.
- Main function consequences, what the assigned role changes.
- Ship power, class and detection, live power, shields, signatures and detection.
- Movement and logistics, fuel, speed, cargo and hangars in play.
- Ship readiness and recovery, maintenance, failures and crew in play.
- Space combat resolution, where damage allocation thresholds apply.
- Point-defence modes, how point-defence weapons engage.
- Jump-point network, where jump drives and stabilisation modules work.
- Naming themes, class and ship names.
- Naval ranks, the rank table a class’s command grade resolves through.
- Spacemaster interventions, the mode that unlocks classes.
- NPR automated class design, the non-player counterpart of the Class Design window.
- Ground force organisation, formations carried as ground loadouts.
- Terraforming mechanics, what terraformer modules do in play.
- Salvage and archaeology, what salvage modules do in play.
- Object identity and reload, class IDs across save and load.
Resources
Section titled “Resources”Related community documentation and developer posts. These may describe a different game version.