Aurora lets a race define custom ship components, select fixed modules that technology unlocks, design missiles and fighter pods, and create ground-unit classes. This page covers the input technologies, the numerical recipes, the restrictions, development and what a save keeps. A component definition is a blueprint. Researching it and manufacturing physical stock are separate operations.

Values from the game database as shipped are examples, not constants every saved game shares. The calculations below decide the stored values, including where the designer preview shows a different figure.

For assembly into hulls, armour geometry, automatic accommodation and engineering, station eligibility and yard restrictions, see Ship and station design. Manufacturing and resource debits are in Production mechanics. Downstream detection and power aggregation are in Ship power, class and detection. Movement and stores are in Movement and logistics. Ground formation organisation, separate from the ground-class design below, is in Ground force organisation.

A component definition (a row of FCT_ShipDesignComponents) stores size, BP cost, crew, HTK, mineral recipe, performance fields, flags and background technology IDs. Manufactured stock is held separately from the definition. ComponentValue has category-specific units. It may be engine power, fuel litres, maintenance supplies, cargo points, berths, sensor strength, maximum hull HS or another rating. Use the formula of the relevant family rather than treating it as a universal strength field.

Symbol or unit Meaning
HS Ship hull space. 1 HS = 50 tons.
MSP in missile design Missile size points. 20 = 1 HS, so 1 = 2.5 tons. This is distinct from maintenance supplies, also abbreviated MSP elsewhere.
C (BP) The definition’s build cost, the industrial work required per unit.
RP Technology development cost, separate from BP and from the mineral recipe.
HTK Component hit-to-kill rating. Exact rounding depends on the family.
AI, AI2, AI3, AI4 The selected technology’s AdditionalInfo, AdditionalInfo2, AdditionalInfo3 and AdditionalInfo4 columns in FCT_TechSystem. These are technology data, not AI-player modifiers. x.AI means the AdditionalInfo of technology x.
R(x,n) x rounded to n decimal places. R(x) rounds to a whole number. A value exactly halfway rounds to the even neighbour, so 12.5 becomes 12.
floor, ceil, int Round down, round up, and drop the fractional part. Positive inputs do not make all three interchangeable.
*, /, ^, sqrt Multiplication, division, power and square root inside formulas.

Square roots and powers are calculated approximately, not as exact decimal roots. The sensor formulas use 3.1416 as pi.

Unless a family states otherwise, its development cost is:

D(C)=int(sqrt(C*5000)*(research speed/100)) RP

Research speed is the game’s research speed setting (ResearchSpeed in FCT_Game). The truncation happens after research-speed scaling. The normal result has no positive minimum. If the calculation fails, the game shows error Function #3388 and uses 1 RP. Miscellaneous components, missile engines and displayed missile summaries follow different rules. Mineral amounts are assigned independently and need not sum to BP. Fuel carried by a design is another quantity again.

Select an available design family and source technologies

Section titled “Select an available design family and source technologies”

The Create Research Project window lists the research categories in DIM_ResearchCategories that have PlayerDefined set to true, sorted by name. The game database as shipped has 24 such categories, including New Species, which is outside ship-component design (see Species engineering). Missiles and turrets have separate designers. The window has a design path for Missile Engines, but that category has PlayerDefined 0 in the game database as shipped, so it is not listed. A component family existing in the game does not by itself mean the player sees a menu entry for it.

Each category supplies up to eight source technology types with sort orders (SourceTechType0 to SourceTechType7 and Sort0 to Sort7). Ordinary choices require the requested technology type and membership in the race’s researched technologies. Armour also requires a positive AI. Obsolete source technologies are not removed from these lists. Sorting normally uses development cost. “Most advanced” also means greatest development cost, not greatest AI. Show Next Tech finds the cheapest unknown technology of that type that is not automatically researched, then includes the unknown entries of the same type at or below that cost, automatic entries included. It does not recursively satisfy every prerequisite.

The following are the bounds of the designer’s dropdown lists, not limits that every design calculation enforces:

Input Choices supplied by the general designer
Miscellaneous size 0.1 to 4.9 HS by 0.1, 5 to 100 by 1, default 1.
Fighter pod bay capacity 1 to 4.9 missile size points by 0.1, 5 to 9.75 by 0.25, 10 to 99 by 1.
Jump capacity 1 to 999, multiplied by a 10, 100, 1,000 or 10,000 ton radio button choice.
Reactor size 0.01 to 0.99 HS by 0.01, 1 to 9.95 by 0.05, 10 to 30.75 by 0.25.
Sensor resolution 1 to 20 HS by 1, 25 to 200 by 5, 220 to 500 by 20, default 100 HS.
Sensor size 0.1 to 1.9 HS by 0.1, 2 to 4.75 by 0.25, 5 to 50 by 1.
Cloak size Minimum through 100 HS by 1. The minimum defaults to 30 and is replaced by the researched Minimum Cloak Size AI.
Magazine 1 to 200 HS by 1. Extra armour layers 0 to 10.
Shield size 1 through the researched maximum by 1. The default maximum is 10 HS.
Ship engine size 0.1 to 19.9 HS by 0.1, then 20 through the maximum by 1. The default maximum is 25. The list below 20 is supplied even when the maximum is lower.
Engine thrust multiplier Race minimum through maximum by 0.05. The defaults are 0.5 to 1. The missile list doubles the upper limit.

The design calculations work from whatever inputs reach them. They generally do not check racial ownership, unlocks or these bounds themselves. An invalid size can make a division, a square root or a conversion fail, and the game then reports a function error. The formulas below describe meaningful designer inputs, not a promise that arbitrary inputs are accepted.

Preview runs the design calculation without registering anything. It produces a pending technology and a pending component that exist only for the preview. Preview does not manufacture stock, spend minerals or start research. A new technology takes the highest existing technology ID plus one, but never less than one above the highest technology ID recorded when the game was loaded. Preview does not itself advance a technology counter.

Action Result
Normal Create Names and registers the component and a technology with the same ID. The player must research the technology through the Economics window.
Instant Create Registers the component and completes its research. The button is visible only in Spacemaster mode.
Prototype Registers the component, marks it as a prototype, or as a future-tech prototype when Show Next Tech is checked, and adds the technology to the race’s known technologies so the component can appear in class design.
Registration the game performs directly, without the designer window Registers the component and completes its research at once. This does more than the normal Create button.

Show Next Tech hides normal Create.

A component’s prototype state (Prototype in FCT_ShipDesignComponents) is 0 for not a prototype, 1 for prototype (P), 2 for future-tech prototype (FP) and 3 for research prototype (RP). Class Design’s research-prototype command accepts exactly state 1 (prototype). It rejects a turret whose base weapon is itself a prototype, and it changes the state to research prototype. Research selection separately lists these already-known technologies when they are not active or queued. Completion at a real population clears research prototype back to not a prototype. Completion with no population attached does not. Neither that Class Design command nor research selection turns a future-tech prototype into an ordinary prototype. Yard eligibility is covered in Ship and station design.

Inputs are size s HS, thrust multiplier t, engine technology E=AI, fuel-consumption technology F=AI and thermal-reduction technology r=AI. The thermal-reduction technology’s AI2 is the cost multiplier when r<1.

Engine power is P=R(E*s*t,2). Fuel use is f=F*t^2.5*sqrt(10/s) litres per engine-power-hour. Fuel per hour is P*f.

Cost is C=max(5,P/2*k*u), where k is the thermal AI2 when r<1 and 1 otherwise, and u=t when t<1 and 1 otherwise. Development is D(C) and the recipe is Gallicite = C. HTK is max(1,int(sqrt(s))), crew max(1,int(R(s*t))), explosion chance floor(10*t) percent and maximum explosion size floor(P/4). StealthRating = r. The thermal signature is P*r, shown rounded to one decimal in the preview. Fuel efficiency is stored unrounded. The preview rounds fuel per hour to 2 decimals and fuel per engine-power-hour to 3.

The engine is military unless both s>=25 and t<=0.5. Designing for a shipping line changes only the generated commercial name, not this threshold. A commercial engine is named Commercial, then the technology’s component name, then EP and its power. For a shipping line it is named with the line’s short name, P and the power, then Civilian Drive. The engine source choices are the Engine Technology, Engine Display Power Modifier, Fuel Consumption, Thermal Reduction and Engine Display Size technology types.

A jump drive takes maximum ship size q HS, efficiency technology e=AI, squadron technology n=AI with cost factor n2=AI2, radius technology d=AI with cost factor d2=AI2, and the drive type. Radius is stored and displayed in thousands of km.

a=max(1,(q/20)^0.25). The raw size is s=q/(e*a) HS. C=q/e*n2*d2*5. RP is D(C). Crew is R(2*s), HTK floor(sqrt(s)), Duranium 0.2*C and Sorium 0.8*C. The definition stores ComponentValue = q, JumpRating = int(n) and JumpDistance = int(d).

For the commercial drive type (AI = 1), the stored size becomes R(5*s,2) and the maximum ship size becomes 5*q. Cost, crew and HTK keep the values calculated before this conversion. The designer first divides the selected tons by 50 and, for commercial drives, divides that q by 5 before the calculation. The displayed final capacity therefore matches the selected tons, while the nonlinear efficiency calculation uses the smaller input. MilitarySystem stays false for both drive types. Commercial behaviour is marked separately by SpecialFunction 2 (commercial jump drive).

Inputs are size s HS, shield technology b=AI and regeneration technology g=AI. Strength is S=R(b*s*sqrt(s/10)). The recharge amount is A=g*s. The stored recharge time is T=floor(S*300/A) seconds. The RechargeRate column stores this time, not A. Cost is C=S+A, RP D(C) and the recipe Corbomite = C. HTK is int(sqrt(s)), with a minimum of 1 only when s>=1. Crew is int(R(s)). Military is true and FuelUse is 0.

Inputs are size s HS, reactor technology p=AI and boost b=AI. The boost technology’s AI2 supplies the explosion percentage. Output is P=R(p*s*sqrt(s)*b,2). C=R(3*P,1). RP is D(C) and the recipe Boronide = C. Explosion chance is int(boost AI2) and maximum explosion int(R(P/2)). HTK is floor(s/2), with a minimum of 1 when s>=1. Crew is int(R(2*s)). Military is true. The preview shows output per HS as R(P/s,2). The source technology types are Power Plant Technology, Power vs Efficiency and Power Plant Size.

Sensors fire controls and electronic equipment

Section titled “Sensors fire controls and electronic equipment”

Active search sensors and missile fire controls

Section titled “Active search sensors and missile fire controls”

Inputs are size s HS, Active Sensor Strength a=AI, EM Sensor Sensitivity e=AI, resolution r HS, electronic hardening (h=AI2, with ElectronicCTD = int(AI)) and ECCM (k=AI2, with ECCM level int(AI)).

Search range is L=sqrt(a*s*e*r^(2/3)/3.1416)*1000000 km. The product a*s*e is calculated exactly and the rest of the range arithmetic is calculated approximately. Missile fire control mode doubles L without changing the size or cost calculation. Sensor strength is a*s. Uridium is U=R(s*a*h,1). Total cost is C=U*k, and Corbomite is C-U. RP is D(C). Crew is R(2*s). HTK is 0 below 1 HS and 1 otherwise. The sensor is military only when s>1, so a sensor of exactly 1 HS is nonmilitary. Both modes are electronic systems (ElectronicSystem true).

Against target resolution x, the sensor’s range is L when x>=r and L*(x/r)^2 otherwise. The preview’s special cases for resolution-1 missiles use signature multipliers 0.3, 0.4 and 0.6, squared, for size-6, size-8 and size-12 missiles. These are design outputs. The full operational detection sequence is in Ship power, class and detection.

Inputs are size s HS, Thermal Sensor Sensitivity or EM Sensor Sensitivity v=AI, and hardening with cost multiplier h=AI2 and CTD int(AI). Strength is V=s*v. C=R(V*h,1). RP is D(C) and Uridium = C. Crew is R(2*s). HTK is 0 below 1 HS and 1 otherwise. The sensor is military only when s>1, and it is an electronic system. Its detection range against a signature is sqrt(V*signature)*250000 km, or sqrt(V*quantity*signature)*250000 km for a quantity of identical sensors.

Inputs are size s HS, Cloaking Efficiency e=AI and Cloaking Sensor Reduction r=AI. The maximum supported hull is s*e HS. C=R(s²/2,1). RP is D(C) and the recipe Corbomite = C. Crew is R(2*s) and HTK floor(s/5). Military is true. CloakRating = r is the remaining signature multiplier, and the generated label shows a reduction of (1-r)*100 percent. Class recalculation checks that the maximum supported hull is at least the ship class size. The minimum cloak size offered in the designer is a separate technology gate.

A selected size s HS gives ComponentValue = s, C=s, development int(10*s) RP, HTK floor(sqrt(s)), crew 0, Duranium C/2 and Mercassium C/2. Research speed is not applied. These are nonmilitary, nonweapon definitions without source technology IDs. Renaming one does not make it work as a named fixed module.

Inputs are total size s HS, extra armour layers l, a selected armour component (its rating, cost and mineral recipe), magazine feed efficiency f=AI and neutralisation n=AI. Crew is max(1,ceil(s/2)). Explosion chance is (100-n)/sqrt(s) percent, stored unrounded.

For l>0, the game computes a spherical surface A=((s*0.75/3.1416)^(1/3))²*4*3.1416 (calculated approximately), the internal armour z=R(l*(A/10)/armour rating,2) HS, and the usable size s-z. For l=0, z=0. Capacity is floor((s-z)*f*20) missile size points. HTK is l+max(0,floor(sqrt(s))-1), and ExtraHTK = l. The capacity is not held at zero or above when an impossible armour combination reaches the calculation.

The base cost is B=5*s. RP D(B) is calculated before the armour cost is added. The final cost is C=B+armour cost*z, using the armour component’s cost. The recipe is Duranium B/4+armour Duranium*z, Neutronium armour Neutronium*z and Tritanium 0.75*B. Other armour minerals are not copied. MilitarySystem and NoMaintFailure are true. The maximum explosion size is 0.

Input q is the supported pod size in missile size points, not the installed HS. The installed size is q/20 HS. C=R(q,1). RP is D(C) and Vendarite R(C,2). Reload takes ceil(sqrt(q)*3000) seconds. ComponentValue = q and RateOfFire = reload time. MilitarySystem, Weapon and HangarReloadOnly are true. Crew is 0. The preview shows HTK floor((q/20)/2), with a minimum of 1 when the installed size is at least 1 HS, but the stored HTK is 0. The preview labels the hangar reload R(seconds/60,1) minutes and “MF Reload” R(seconds/360,1) hours. The display really divides by 360.

Inputs are missile capacity m in missile size points, reload technology r and size-modifier technology u. Ordinary launchers use size factor s=u.AI, base reload b=u.AI2 and crew int(R(m*u.AI3*3)). Decoy launchers instead use s=0.1, b=100, crew 0 and no size-modifier technology. The installed size is R(m*s,2) HS.

When s<0.3, the game replaces the reload technology with technology 12106, Missile Launcher Reload Rate 1 (its AI and AI2 are both 1 in the game database as shipped). It sets HangarReloadOnly and computes the reload as ceil(sqrt(m)*b*30) seconds. Otherwise the reload is ceil(sqrt(m)*b*30/r.AI) seconds. In either case the result rounds up again to a multiple of 5. Cost is R(m*r.AI2*s*4,1), using the replaced basic reload technology for boxes and decoys. RP is D(C). Duranium is R(C/4,2) and Tritanium R(0.75*C,2). HTK floor(size/2) has a minimum of 1 only when the size is at least 1 HS.

Ordinary launchers that reload only in a hangar are named Box Launchers. They use the best researched Box Launcher Explosion Chance AI, truncated to a whole number. Other ordinary launchers and decoy launchers have explosion chance 0. That explosion technology affects the output but is not recorded as a background prerequisite. All of them are military weapons with BeamWeapon false, ComponentValue = m, RateOfFire = reload seconds and one shot. Reload and size technologies are recorded where they apply. The preview’s “MF Reload” hours again divide by 360, not 3,600.

The ordinary capacity dropdown offers 1 to 4.9 by 0.1, 5 to 9.75 by 0.25 and 10 to 200 by 1. The decoy list starts at 5 and ends at 99. These bounds belong to the designer. The decoy launcher designer supplies no reload or size technology. The forced basic reload technology is what lets that design complete.

The weapon designs in this section set the military, weapon and beam-weapon flags, except for the CIWS military flag described below. Direct fire control is a separate electronic component. A railgun is therefore a beam weapon in this model despite its kinetic damage family. For charged weapons, the nominal preview interval is ceil(P/RechargeRate*5), then rounded up to a multiple of 5 seconds. For a beam weapon, the rate of fire the game derives from a stored component is ceil(PowerRequirement/RechargeRate)*5 seconds, and zero power gives 5 seconds. A component that is not a beam weapon gives 0. The reactor power actually available on the ship is a downstream limit, not a design cost input.

The energy-weapon recipes below use independently rounded Duranium R(0.2*C,1), Corundium R(0.6*C,1) and Boronide R(0.2*C,1). The railgun uses Neutronium in place of Corundium. Rounded mineral totals can differ from BP. RP is D(C).

For laser, particle beam, railgun, meson, microwave and carronade designs, an automatically researched capacitor (Capacitor Recharge Rate technology type) can be replaced in the recorded background technology slots after the numbers are calculated. The replacement is the cheapest technology of the same type that is not automatically researched and has a strictly greater AI. When there is none, the race’s most advanced researched alternative is used. The numbers are not recalculated. NPR capacitor selection also optimises before the calculation. It tests the thresholds P, P/2 and P/3 in that order. When the selected capacitor’s AI exceeds a threshold, it takes the smallest researched capacitor AI that is at least that threshold, if one exists. Otherwise it moves on to the next threshold, and after the last one it keeps the selected capacitor. The railgun uses its scaled total power for this test before recharge is scaled by shots / 4. None of this changes the formulas below for player designs.

A weapon’s range is its MaxWeaponRange when that is positive, otherwise DamageOutput*int(RangeModifier). Damage at distance d stays constant up to a positive MaxWeaponRange and is zero beyond it. Without a positive maximum it is int(DamageOutput/max(1,d/RangeModifier)), and a zero RangeModifier gives 1. A particle-beam maximum range and a laser damage-falloff modifier therefore mean different things in combat.

Inputs are focal size f, wavelength w, capacitor c, reduced-size technology u and mount m. The effective radius is e=f.AI*m.AI/2. Damage is d=int(R(e²*3.1416/30)). The power requirement is d, the recharge c.AI/u.AI2, the range modifier w.AI km and the indicated maximum range d*w.AI. The mount scales the diameter before damage is squared.

The initial size is s=R(2*sqrt(d)) HS. The initial cost is C=R(sqrt(d)*(w.AI/10000)*c.AI,1). If u.AI<1, size and cost are multiplied by u.AI without a second rounding. RP, crew int(3*s) and HTK floor(s/2) are computed at that point. Only then is the stored size raised to at least 1.5 HS. Crew, HTK and cost therefore need not match the formulas reapplied to the final size. It uses the energy recipe and fires one shot. SpinalWeapon is true only when m.AI>1. The background technologies are focal size, wavelength, capacitor, reduced size and mount. No MaxWeaponRange is set.

Inputs are calibre a, velocity v, capacitor c and shot count n. Per-shot damage is d=int(a.AI). Power is P=a.AI2*n/4. Size is s=a.AI3*0.1+(n/4)*a.AI3*0.9. Recharge is Q=c.AI*n/4. The range modifier is k=int(v.AI). Cost is C=R(sqrt(P)*int(k/10000)*Q,1). The division by 10,000 is whole-number division. Crew is int(ceil(3*s)) and HTK floor(s/2). Duranium, Neutronium and Boronide split 20/60/20. The stored shot count is n, damage stays per shot, and the indicated range is d*k.

The designer offers 4, 3, 2 or 1 shots. The design calculation does not enforce that range. Fewer shots change total power, recharge, volley damage and the 90% variable part of the size. For fixed source technologies the ratio P/Q and the nominal interval stay the same. When the game designs a fighter railgun automatically, it tries 4 down to 1 shots and requires strictly positive remaining space after the weapon and a minimal boosted reactor. That is not an extra player design family.

Inputs are rate of fire g, velocity v and size and accuracy technology u. Shots per 5 seconds are n=int(g.AI). Size is s=u.AI HS. The accuracy multiplier is u.AI2. The range modifier is int(v.AI). Damage is 1 per shot. Power and recharge are 0. Cost is C=2*n*s, all Vendarite. Crew is int(R(2*s)) and HTK int(sqrt(s)). ComponentValue and NumberOfShots both store n. Size comes from a researched technology rather than a free HS input.

Inputs are strength a, range r, capacitor c, lance l and mount m. Initial power is P=a.AI*m.AI2. Damage is d=int(a.AI2*m.AI2). Size is s=a.AI3*m.AI. Maximum range is K=int(r.AI*m.AI3) km. Recharge is Q=c.AI. The base cost is C=R(sqrt(P)*sqrt(int(K/10000))*Q,1). Crew is int(3*s) and HTK floor(s/2). The range division is whole-number division.

When int(l.AI)=1, power becomes int(2.5*P), damage doubles, size doubles, the already rounded cost triples, crew doubles, and HTK is recomputed from the doubled size. Range and recharge stay the same. Stored power is finally int(P) even for a beam that is not a lance, so the preview interval can use the power before truncation. RangeModifier = MaxWeaponRange = K, with one shot and the energy recipe. A lance carries SpecialFunction 3 (particle lance). SpinalWeapon is true only when m.AI>1, independent of the lance choice. All five inputs are background technologies.

Both use focal technology f, focusing technology r and capacitor c. Power is p=int(f.AI), k=int(r.AI), recharge Q=c.AI, size s=max(2,int(2*sqrt(p))) and range K=p*k/2 in whole-number arithmetic. HTK is floor(s/2), with one shot and the energy recipe.

Field Meson High-power microwave
Cost R(sqrt(p)*int(k/10000)*Q,1) R(int(k/10000)*Q*sqrt(p)*2,1)
Crew 5*s 3*s
Damage 1 1 ordinary,
Range fields RangeModifier = ComponentValue = K, no maximum assigned RangeModifier = MaxWeaponRange = ComponentValue = K
Special damage flags IgnoreShields true, IgnoreArmour false, ArmourRetardation = f.AI4 ElectronicOnly and IgnoreArmour true
Variant Focal AI is power, never meson damage

Whole-number division in these cost formulas can discard a fractional focusing step. All three inputs become background technologies, subject to the automatic capacitor replacement above. A high-power microwave design always needs an owning race.

The player designer uses a version with a mount technology. An older version without a mount is still used when the game designs carronades itself. The two have different formulas.

Quantity Current version with mount Older version without mount
Inputs Calibre a, capacitor c, mount m Calibre a, capacitor c
Damage and power d int(R((a.AI*m.AI/2)²*3.1416/30)) int(a.AI)
Initial size s R(2*sqrt(d))/2 int(2*sqrt(d))
Cost 2*R(sqrt(d)*c.AI,1) R(sqrt(d)*c.AI,1)
Crew and HTK int(3*s) and floor(s/2) 2*s and floor(s/2)
Final size Minimum 2 HS, applied after cost, crew and HTK No minimum
Spinal m.AI>1 Not assigned

Both have recharge c.AI, range modifier 10,000 km, indicated maximum range d*10000, one shot and the energy mineral split. The mounted version records calibre, capacitor and mount as background technologies. The older version records calibre and capacitor. The “Laser HTK” label in the mounted preview is a display mistake, not a separate weapon type.

Inputs are distance technology d, speed v, range multiplier r, tracking multiplier t, hardening h, ECCM e and weapon-number technology w. Range is K=min(1400000,r*d.AI) km. Tracking is V=int(R(t*v.AI)) km/s. The initial size is s=R(r*t/2*w.AI,2) HS. Size uses the raw r even when the range is capped. The base cost and Uridium are U=R(K/20000*int(V/1000)*h.AI2*w.AI,1). The total is C=U*e.AI2. Corbomite is C-U. RP is D(C). The speed division is whole-number division, so 1,999 km/s gives the same cost factor as 1,000.

Crew int(R(4*s)) is computed before the final size is raised to at least 0.01 HS. HTK is 0 below a final 1 HS and 1 otherwise. Military and electronic are true. ElectronicCTD = int(h.AI) and ECCM = int(e.AI). Neither weapon flag is set. ComponentValue = K. w.AI<1 gives SpecialFunction 6 (single-weapon fire control). Otherwise t=4 gives SpecialFunction 1 (point defence), so the single-weapon choice takes precedence. The range and tracking multipliers are saved in FCRangeModifier and FCSpeedModifier. The background slots BGTech1, BGTech2, BGTech5, BGTech6 and BGTech7 hold distance, speed, hardening, ECCM and weapon number.

Each multiplier list in the designer offers 1, then 4, then 0.10 to 3.99 by 0.01, so 1 appears twice. These are not limits of the design calculation.

Inputs are gauss rate of fire g, beam fire control distance d, beam fire control speed v, active sensor strength a, turret rotation t and ECCM e. Shots are q=2*g.AI, stored as int(q). Damage is 1 and accuracy 0.5. Power and recharge are 0. The two-cannon base size is 5 HS.

The sensor size is ss=R(3/a.AI,2). The fire control size is sf=R(2/(d.AI/20000)/2,2). Tracking is V=4*v.AI, stored as int(V). The rotation base is b=10*t.AI. The gear size is sg=R(5*V/b,2). The total is s=R(5+sg+sf+ss,2). Electronics cost u=V/2000+3. The ECCM mineral amount is z=u*e.AI2. Cost is C=R(5*g.AI+5*sg+u+z,1) and RP D(C). The minerals are Duranium 5*sg, Vendarite 5*g.AI, Uridium u and Corbomite z, none rounded individually. The cost charges both u and z, even when the ECCM cost multiplier is 1. Crew is ceil(s) and HTK int(sqrt(s)). All six inputs are background technologies.

A CIWS stores ComponentValue = q and ECCM = e.AI. It is flagged nonmilitary, while its weapon and beam flags are true. The design assigns no range fields. A separate weapon summary prints 1,000 km. ECCM is not optional in practice. The ECCM level falls back to 0 without an ECCM technology, but the cost step reads the technology’s AdditionalInfo2 regardless. When the designer shows no ECCM selector, the CIWS design fails with error Function #2620 and produces no component.

The player turret dropdown offers researched, nonobsolete, nonspinal weapons with TrackingSpeed 0 of three types only, laser, meson and gauss. It does not offer railguns, particle beams, carronades or high-power microwaves, although the turret calculation itself has no matching list of allowed types. The inputs are base weapon w, count n (1 to 4 in the designer), requested tracking v km/s, extra armour strength a and rotation technology t. Tracking and armour entries are read as numbers, an unreadable entry counts as 0, and the fractional part is dropped. The researched fire control speed is displayed but does not limit the requested tracking here.

The gear ratio is g=v/(10*t.AI), multiplied by 0.9 for twin, 0.85 for triple and 0.8 for quad turrets. The base weapon size is s=weapon size*n, the base cost B=weapon cost*n and the gear size z=R(s*g,2). Crew is the weapon’s crew for a single turret, R(1.8*weapon crew) for twin, R(2.55*weapon crew) for triple and R(3.2*weapon crew) for quad. Counts outside 1 to 4 keep the single-turret crew and name.

If a>0, the best researched ship armour component is selected. With the pre-armour size s+z, the sphere surface is A=(((s+z)*0.75/pi)^(1/3))²*4*pi, calculated approximately with full-precision pi rather than 3.1416. The armour is y=R(a*(A/4)/armour rating,2) HS and the armour cost H=R(armour cost*y,2). ExtraHTK = a. Otherwise y=H=0 and ExtraHTK stays 0. The final size is max(1,R(s+z+y,2)), C=B+H+5*z, RP D(C), and HTK (weapon HTK+a)*n, even when a is zero or below. Armour counts once in size, but its HTK increment is multiplied by the weapon count.

Power, recharge and shots multiply the base values by n. Damage stays per shot. The turret copies the component type, accuracy, IgnoreArmour, IgnoreShields, RangeModifier, DamageOutput, Prototype and SpecialFunction, and sets the tracking speed and the base weapon ID. It does not copy every field. MaxWeaponRange, ElectronicOnly, ArmourRetardation and SpinalWeapon are not taken from the base. For meson and gauss turrets ComponentValue becomes the RangeModifier. Other types use damage.

The stored mineral recipe is specifically Duranium weapon Duranium*n+5*z, Neutronium H, Boronide weapon Duranium*n, Vendarite weapon Vendarite*n and Corundium weapon Corundium*n. Other base minerals are left out. The Boronide amount copies the base weapon’s Duranium rather than its Boronide. The background slots BGTech1 to BGTech3 copy the base weapon’s slots, and BGTech4 is the rotation technology. The base weapon ID is stored separately in TurretWeaponID. The armour technology and the laser reduced-size and mount slots 4 and 5 are not kept as dependencies.

Ordinary turret Create registers the turret without completing research. Create and Research completes it and is available only in Spacemaster mode. Both refuse a prototype base weapon. Prototype creates and researches a prototype turret for class design. The turret’s military, weapon and beam flags are true. Its technology type is RD Energy Turret (DIM_TechType 124), changed to RD Kinetic Turret (DIM_TechType 272) when the base weapon’s technology belongs to the Missiles research field (DIM_ResearchField 4).

Missile engines payloads stages and fighter pods

Section titled “Missile engines payloads stages and fighter pods”

The Missile Design window builds ordinary anti-ship and anti-missile missiles, laser warheads, ship decoys, sensor buoys, geological probes, stages and three fighter pod types, all as missile designs (FCT_MissileType). Size inputs use missile size points. A missile engine’s stored size (Size in FCT_ShipDesignComponents) is also in missile size points, unlike installed ship engines. Ordinary designer missiles have exactly one engine or none. The design calculation itself accepts an engine count (NumEngines).

Let s be the engine size in MSP divided by 20, in HS, with thrust multiplier t, engine technology E=AI, fuel technology F=AI and the race’s maximum-thrust technology M=AI. Start with b=t^2.5. If t>M, multiply b by ((t-M)/M*4+1). Engine power is P=R(E*s*t,2). Fuel efficiency is f=F*b*sqrt(10/s) litres per engine-power-hour, stored unrounded. Cost is C=P/2, multiplied also by t when t<1. Development is int(R(100*C)), which bypasses both D and research speed.

Crew, HTK, explosion chance and explosion size are 0, stealth is 1 and military is true. The background slots are the engine and fuel technologies. The engine calculation works out Boronide and Gallicite halves but stores only Gallicite C/2 in its recipe. Missile assembly separately adds both halves from the engine cost, so the standalone engine recipe and the missile recipe are not interchangeable.

Let w be the warhead size, W the best researched Missile Warhead Strength AI, and the base strength B=w*W (0 without that technology). Ship decoy mode with the Decoy Missiles technology replaces B with 200*w, sets ShipDecoy to 1 and uses WarheadStrength as simulated tons. If enhanced radiation is selected and available, q=int(technology AI), otherwise q=1. Radiation damage is R(B*q,3) and warhead strength R(B/q,3). Decoys clear radiation. The radiation-clearing test also looks at LaserWarhead>0 before laser strength is assigned, so it does not clear a newly created laser warhead’s radiation.

Laser conversion uses the efficiency fraction e=Laser Warhead Damage Efficiency AI/100, computes conversion=1/e, then sets LaserWarhead=R(WarheadStrength/conversion,3). Focus defaults to 10,000 km or the researched Laser Warhead Focus AI. If a beam fire control distance technology is researched and the requested maximum detonation range exceeds 2*AI, the maximum is capped at 2*AI, and a minimum above the capped maximum is reduced to it. The minimum is corrected only when that cap applies. Without that technology both ranges are zero. Laser damage at a distance is LaserWarhead/max(1,distance/focus), or 0 for zero focus.

The missile design records engine count, child count, multiple warheads and ECM decoys. MultipleWarheads is held to at least 1, but the extra-warhead size uses the requested count as entered, 0.1*(requested count-1). ECM decoy size is 0.5*decoy count. The designer forces one warhead when the enabling technology is missing, when the count text is exactly “0”, and for laser warheads. Separation range stores int(input*1000) km from an input in thousands of km.

ECCM, ATG and retargeting need both the toggle and the technology. The defaults are ECCM 0, ATG 1 and Retargeting 0. The best Missile ECM technology is assigned regardless of any toggle. Extra size is 0.25 for positive ECCM, 0.25 for ATG above 1, 0.5 for retargeting above 0 and 0.25 for positive laser damage. Missile ECM itself adds no explicit size or cost term.

Active, thermal, EM and geological sensor sizes each produce strength only with the matching researched technology and at least 0.25 size points. Strength is R(sensor MSP*technology AI*0.05,2). Smaller positive inputs still take up size. Active, thermal and EM strengths are rounded as decimals, then stored approximately. Geological strength remains a decimal. EM sensitivity comes from the technology regardless of the EM sensor size. Let S be the sum of the four strengths, including the converted geological strength. Reactor output is R(S/5.0,4). Power plant efficiency is Power Plant Technology AI*0.05. Reactor size is R(output/efficiency,4) when efficiency is positive, otherwise 0.

Active range is int(R(sqrt(active strength*EM sensitivity*resolution^(2/3)/3.1416)*1000000)) km when both resolution and active strength are nonzero, otherwise 0. Resolution is in HS, so the nominal target is 50*resolution tons. Thermal and EM ranges are sqrt(strength*target signature)*250000 km. The designer’s per-size summary of the geological technology uses AI/100, while the design itself uses AI/20. The calculated strength follows the design value.

Stage aggregation size speed fuel and range

Section titled “Stage aggregation size speed fuel and range”

Engine power, engine size and engine cost totals each round to 4 decimals after multiplication by the engine count. A valid child stage with a positive count adds child size*count, child cost*count and child FuelRequired*count. Otherwise the missile keeps no child stage. The missile’s own fuel capacity is int(floor(2500*fuel MSP)) litres. FuelRequired includes child fuel, but the missile’s own endurance uses only its own capacity.

The final size adds the reactor, warhead, fuel, all four sensors, engines, ECM decoys, the extra-warhead allowance, child sizes and the electronic feature allowances. A zero total produces no design, and the summary shows “No Components Selected”. The minimum is 5 for a ship decoy and 1 otherwise. A positive maximum size supplied to the calculation then lowers the size without recalculating the ingredients. The decoy designer passes its warhead input as this maximum, so it can override the nominal minimum.

Speed=R(total engine power/(Size/20)*1000,1) km/s, capped at 270,000. With positive power, Endurance=R(own fuel litres/(total engine power*engine FuelEfficiency)*3600,1) seconds. Without power it is 1 second. The missile’s own range is Speed*Endurance. With a child, TotalFlightTime and the total range add the child’s corresponding total once, not once per child. Launcher capacity therefore sees all child mass, while the displayed total range represents a sequential stage path.

The calculation starts with the child cost and recipe multiplied by the child count. Only Corbomite, Tritanium, Boronide, Uridium and Gallicite are copied from the child recipe. A child’s laser Corundium and pod Vendarite are left out. The following are added in order. Fuel and structural size have no separate BP or mineral charge. Fuel litres stay in FuelRequired and are not a mineral.

BP increment Mineral increment Condition
Total engine cost Half Boronide, half Gallicite Engine aggregate
R(reactor output*3,3) Boronide Automatic reactor
0.5 Uridium Retargeting exactly 1
ATG-1 Uridium ATG above 1
Laser efficiency fraction e Corundium Laser toggle, including zero resulting damage
Decoy quantity Corbomite Positive ECM decoy count
Extra-warhead size Tritanium Stored multiple-warhead count above 1
Sensor sum S as a decimal Uridium Actual sensor strengths
ECCM/20 Corbomite ECCM term
4*w Corbomite Ship decoy
B/4 Tritanium Ordinary or laser warhead, not a fighter pod

Fighter pods instead overwrite the final Cost with Size/5 and set Vendarite to that cost without clearing the mineral fields already accumulated. Actual missile development is D(Cost*5). The missile summary shows Cost*100 RP, which is a different calculation.

Fighter bombardment autocannon and air-to-air pods

Section titled “Fighter bombardment autocannon and air-to-air pods”

Let u=warhead MSP*2.5 tons and g the racial ground weapon multiplier defined in Racial snapshots and effective combat ratings.

Pod AP Damage Shots
Bombardment R(g*(u/20)^0.6) R(g*(u/20)^1.6). GroundBaseDamage stores (u/20)^1.6 3
Autocannon R(g*(u/20)^1.25) 2*g 3
Air-to-air u/20*g u/10*g 1

These are ground-attack ordnance fields (GroundAP, GroundDamage), not beam damage. They feed ground combat. Pod options are mutually exclusive in the designer. Selecting one zeroes fuel, reactor, sensors, child count and decoys, clears ECCM and selects No Engine. It does not explicitly clear every other toggle. The designer shows warhead strength 0 for a pod, while the stored ordinary warhead calculation still runs.

The designer reads ordinary size entries with a fallback of 0 and raises negative warhead, fuel and sensor entries to 0. The decoy designer takes an earlier route that skips those corrections and builds a payload-only missile with no engine, sensors, stage or options. Resolution, count and range entries are converted to whole numbers. No single check validates every range of inputs. Technology gates control the geological, decoy and pod rows of the designer. The previous-design and second-stage selectors list the race’s researched, nonobsolete designs, with no separate rule for which missiles may serve as a stage.

Normal Create registers the preview engine and researches it at once when the missile has an engine (No Engine unchecked). It then registers the missile and its technology and leaves missile development to research. Instant Create also completes missile research and is available only in Spacemaster mode. Registration the game performs directly also researches immediately. Selecting a previous design copies its inputs and recalculates with current technologies, rather than keeping its old numbers. The restored separation range uses whole-number division by 1,000. Selecting a previous design does not explicitly restore the ship-decoy or pod flags.

The launcher maximum is a ceiling. Launch is refused when the missile size exceeds the launcher’s ComponentValue, and smaller or equal parent designs pass that size test. Child sizes are already part of the parent size. Magazine capacity is separate. Class loadout cuts the requested quantity down to the available ordinary or decoy size capacity without checking that a launcher exists. Launchers and pod bays contribute ordinary capacity. Decoy launchers contribute separate decoy capacity.

Assigning ordnance to a weapon by dragging in the Naval Organization window enforces decoy versus non-decoy launcher type, but does not enforce size, pod or stage eligibility. A separate decoy assignment action assigns directly. Fire-control assignment distinguishes beam from missile weapons, does not allow decoy launchers on fire controls, and limits single-weapon controls to one assignment. These checks are spread across several actions. No single check covers every compatibility rule.

Ground-support capability requires every selected ship to be at most 10 HS, and either a pod bay somewhere in the selected group or every ship having ordinary missile launcher capacity and loaded ordnance with GroundDamage above 0. Ground-attack selection filters assigned ordnance by positive GroundDamage. It does not require a pod bay at that point. Pod bays have HangarReloadOnly, but the common timed launcher recharge recognises only the missile and decoy launcher categories. Do not assume that every ordinary launcher reload formula also governs pods.

Buoys geological probes stages and mine scope

Section titled “Buoys geological probes stages and mine scope”

The game names a new missile from the race’s missile naming theme, or “Size” and the size when the theme has no name left, and appends a type. Pod names take precedence (Fighter Bombardment Pod, Fighter Autocannon Pod, Fighter Air-to-Air Pod). Then zero warhead strength with a positive reactor gives Buoy, a ship decoy gives Ship Decoy, zero warhead strength without a reactor gives Missile Stage, a size of at least 4 gives Anti-Ship Missile, and anything smaller gives AMM. These names describe the same underlying blueprint. A stationary salvo with no child stage and no onboard sensor destroys itself on the subpulse that resolves it. Geological sensors count as sensors for this check.

Stage separation can happen when the remaining distance to the target is within SeparationRange, and on arrival for an attack. The parent missiles are destroyed. The child count is parent surviving missile count x NumSS. The child starts with its full endurance and the current launch time, and it inherits or acquires a target. A stationary child clears its targets and looks for an orbit body at exactly matching coordinates.

Geological probe progress is Geostrength*missile count*elapsed seconds/3600*SurveySpeed/100. The probe surveys a nearby body in the same system, then the completing salvo and its progress record (FCT_MissileGeoSurvey) are removed. At the default survey speed the daily figure per missile is Geostrength*24. In the paths described here the missile designer has no dedicated player mine payload. NPR design philosophies can name a captor mine and a mine second stage, filled in when a game is loaded, and automated ordnance selection can use them. That does not give players a mine recipe or a trigger model.

Fixed components are database definitions that already exist, and the technology with the same ID unlocks their use. They are not all generated by one size and cost formula. When a game is loaded, the game reads size, BP, the category-specific rating, crew, HTK, eleven minerals, background technologies and individual flags exactly as stored, and it accepts a row only when its component category and its same-ID technology exist. The game database as shipped has 177 definitions with GameID 0 in FCT_ShipDesignComponents, alongside saved-game rows that must not be mistaken for baseline modules.

Research adds the technology to the race’s known technologies, and matching automatic technologies can follow from their prerequisite. Ordinary class selection requires a known technology, a displayable type, nonobsolete status unless obsolete items are shown, and no prototype unless prototypes are shown. Stored components and alien stock can add entries to the ordinary list. Unlocked knowledge, visible catalogue entries and owned physical stock are distinct. See Technology knowledge and availability.

The table covers all 57 nonzero component categories the game recognises. Grouped custom families refer to their formulas above. Fixed figures are explicit baseline examples, not progression rules. DIM_ComponentType controls display order (ClassDisplayOrder), repair order (RepairPriority), empty space (EmptySpaceModifier) and category single-system behaviour (SingleSystem). Individual flags such as SingleSystemOnly, MilitarySystem, NoMaintFailure, NoScrap, ShipyardRepairOnly and ElectronicOnly stay per-definition fields.

Category IDs and families Definition route and rating interpretation Baseline examples or restriction
1 Engine, 56 Missile Engine Custom engine formulas Ship engine size in HS, missile engine size in missile points.
2 Crew Quarters Fixed, sized automatically in hull design 50/10/5/2 crew capacity at 1/0.2/0.1/0.04 HS. BP 10/2/1/0.4. Zero component crew.
3 Fuel Storage Fixed, litres add Capacities 100/1,000/5,000/10,000/50,000/250,000/1,000,000/5,000,000 L across sizes.
4 Transport - Cargo (cargo hold) Fixed, cargo points add Shuttle/tiny/small/standard/large give 50/500/5,000/25,000/125,000 CP at 1/10/100/500/2,500 HS.
5 Magazine Custom and fixed commercial magazines Missile-size capacity, internal armour and explosion recipe for custom designs. Fixed commercial capacities 100/500 at 12/50 HS, BP 25/100, crew 5/20 and HTK 1/1 (IDs 65277/65278).
6 Survey - Gravitational Fixed, survey rating Rating 1/2/3/5. Each is 5 HS with BP 100/150/200/300, crew 10, HTK 1.
7 Survey - Geological Fixed, decimal survey rating Same trans-Newtonian progression as gravitational. The conventional sensor has rating 0.2 at 5 HS and BP 50.
8 Passive - Thermal, 41 Passive - EM Custom passive sensor The ship class selects the best individual strength. Quantity does not simply add strength.
10 Command and Control Fixed, bridge and specialised command modules The ship class adds each component rating without the quantity multiplier.
11 Armour Fixed material, applied automatically through hull geometry Conventional ratings 1/2/3, trans-Newtonian 4 to 45, Structural Shell 20. Not ordinary internally stacked modules.
12 Shields Custom Strength and recharge time.
14 Transfer - Cargo / MSP (cargo shuttle bay) Fixed, cargo and MSP transfer contribution 10 HS, BP 20, rating 1, crew 10, HTK 1.
15 Laser, 30 Particle Beam, 34 Meson Cannon, 35 Railgun, 36 Plasma Carronade, 44 High Power Microwave, 45 Gauss Cannon Custom weapon formulas Turrets wrap existing weapon definitions rather than creating another category.
16 Jump Drive Custom Maximum hull HS, squadron rating and radius are separate fields.
17 Transport - Colonist Fixed, cryogenic, emergency, conventional and Ark berths Standard cryogenic 50 HS, BP 100, 10,000 capacity, 10 crew, 1 HTK. Ark 10,000 HS, BP 200, 200,000 capacity, 30 crew, 25 HTK, with SpecialFunction 7 (standard berths).
18 Reactor Custom Reactor output adds.
19 Direct Fire Control Custom Range, tracking, hardening and ECCM.
20 Electronic Warfare Systems Fixed missile, sensor and fire control jammer technology families Levels 1 to 10, each 3 HS, 5 crew, 1 HTK. The ship class selects the strongest of each family. BP 10/20/30/40/60/80/100/125/160/200, except that fire control jammer level 3 costs 60. No custom ECM size design exists.
22 Missile Launcher, 71 Decoy Missile Launcher Custom Separate ordinary and decoy capacities. Forced basic reload for boxes and decoys.
24 Active, 25 Missile Fire Control Custom active modes Missile fire control doubles the design range.
26 Damage Control - Military Fixed, repair contribution adds Basic/improved/advanced rating 10/20/30. 3 HS, BP 25/50/75, crew 10, HTK 2.
27 Transport - Troops Fixed, transport tons add Standard, drop and boarding capacity 1,000, at 20/24/22 HS, BP 20/50/30, crew 5/10/10 and HTK 2/3/2 respectively. The technology type distinguishes the transport style.
29 Jump Point Stabilisation Fixed, the rating is construction days 180/150/120/90/60/45/30/20 days. The small version takes 360 days at 500 HS, BP 600, 30 crew, 5 HTK.
31 Engineering Fixed, may be added automatically Ratings and sizes 1/0.5/0.25/0.1 HS, BP 10/5/2.5/1, crew 5/3/2/1, HTK 1/1/0/0. Hull calculations govern coverage and supplies.
32 Sorium Harvester Fixed, the ship class stores the module count 50 HS, BP 30, base rate 10, crew 10, HTK 5. The operational rate is downstream.
33 Terraforming Module Fixed, the ship class stores the count 500 HS, BP 500, base rate 10, crew 100, HTK 10.
37 Tractor Beam Fixed, enables towing 10 HS, BP 100, rating 1, crew 10, HTK 5. Warning for multiple modules.
38 Orbital Mining Module Fixed, the ship class stores the count Standard 100 HS, BP 120, rate 10, crew 50, HTK 5.
39 Salvage Module Fixed, wreck HS per day adds Rates 500/750/1,000/1,350/1,800/2,500. All 200 HS, 80 crew, 5 HTK. BP 200/220/250/300/400/500.
43 Transport - Military Hangar (hangar deck) Fixed, capacity is carried hull HS Hangar, boat and small boat sizes 21/5.25/1.05 HS, capacity 20/5/1, BP 100/25/5, crew 12/3/1, HTK 4/1/0.
46 Cloaking Device Custom Maximum hull size and remaining-signature multiplier.
47 Maintenance Storage Fixed, onboard maintenance supplies add Large/standard/small/tiny/fighter capacity 2,500/500/100/25/5, HS 5/1/0.2/0.05/0.01, BP 20/4/0.8/0.2/0.04, crew 0, HTK 1/0/0/0/0.
48 Maintenance Module Fixed, maintenance facility count 100 HS, BP 100, maximum-ship rating 200, crew 50, HTK 5. Different from engineering and MSP storage.
50 Transport - Passenger Fixed, passenger capacity adds Standard 50 HS, BP 100, 250 passengers, 100 crew, 1 HTK. Small 5 HS, BP 20, 25 passengers, 20 crew, 1 HTK.
51 CIWS Custom integrated package Its MilitarySystem flag is false.
57 Recreational Module Fixed, a yes or no facility 2,000 HS, BP 2,000, rating 1, crew 1,000, HTK 25.
58 Transport - Commercial Hangar Fixed, commercial hangar flag and carried HS 32 HS, BP 100, capacity 20 HS, crew 15, HTK 1.
59 Damage Control - Commercial Fixed, repair contribution adds 6 HS, BP 25, rating 10, crew 10, HTK 2.
61 Transfer - Fuel (refuelling system) Fixed, litres per hour add Normal 20,000 LPH, 40 HS, BP 10, 20 crew, 1 HTK. Small-craft 15,000 LPH, 1 HS, BP 4, 4 crew, 0 HTK.
63 Transfer - Ordnance Fixed, the ship class uses the individual transfer rating 40/48/64/80/100/128/160/200/256/320/400 missile points per hour. Each 10 HS, 20 crew, 1 HTK. BP is half the rating.
64 Transfer - Ordnance Hub Fixed, class facility count capped at 1 2,000 HS, BP 2,400, rating 1, crew 0, HTK 5.
65 Fighter Pod Bay Custom No GameID 0 row in the game database as shipped. Capacity in missile points.
66 Passive - ELINT Fixed, rating adds Rating 5/6/8/11/14. Each 10 HS, 15 crew, 3 HTK. BP 20 times the rating.
67 Diplomacy Module Fixed, the ship class uses the individual rating 30 HS, BP 300, rating 1, crew 50, HTK 5.
68 BioEnergy Storage Fixed, capacity adds 1/5/20 HS, BP 10/30/70, capacity 50/250/1,000, crew 0, HTK 1/5/20.
69 Miscellaneous Component Custom Size, BP, RP and minerals only. No GameID 0 row in the game database as shipped.
70 Mobile Repair Bay Fixed, repair-yard capacity adds 40 HS, BP 120, capacity 1,000, crew 50, HTK 1.

The figures come from FCT_ShipDesignComponents in the game database as shipped, and the category metadata from DIM_ComponentType. How a ship class adds ratings and quantities is described in Ship and station design. Category 0 means no type. DIM_ComponentType row 55, Transport - Ark Module, has no matching game category. The baseline Ark uses category 17 with SpecialFunction 7 (standard berths). No universal mineral or crew per HS formula follows from this map. Read the selected row, including its flags.

A ground class is a chassis (base type), a ground armour choice, up to four ordered component slots, capability modifiers, an optional HQ capacity and an optional integrated surface-to-orbit (STO) ship weapon. It is separate from a ship component and from a formation template, which combines quantities of ground classes (see Ground force organisation). Base types, armour, components and capabilities come from DIM_GroundUnitBaseType, DIM_GroundUnitArmour, DIM_GroundComponentType and DIM_GroundUnitCapability, and the designer offers only those whose linked technologies are researched. Component eligibility follows the chassis columns of DIM_GroundComponentType (Infantry, Vehicle, Static and the other chassis flags). The extra slot controls depend on the chassis type. The choices for the additional slots exclude components with a positive HQ capacity.

Chassis Base tons Slots Base HP
Infantry 0 1 1
Light vehicle 12 1 3
Medium vehicle 18 2 4
Heavy vehicle 36 2 6
Super-heavy vehicle 108 3 12
Ultra-heavy vehicle 216 4 24
Static 12 1 3

These values come from DIM_GroundUnitBaseType in the game database as shipped. No vehicle formula derives them. Ground armour (DIM_GroundUnitArmour) is a chassis-specific strength multiplier, not ship armour layers. Capabilities (DIM_GroundUnitCapability) include boarding, gravity, temperature, terrain and pressure adaptations. Genetic enhancements give HP multipliers of 1.25, 1.6 and 2. Infantry-only capabilities are removed from classes that are not infantry.

The 30 ground component definitions cover personal, light and improved personal weapons, crew-served and heavy crew-served anti-personnel, light, medium, heavy and super-heavy anti-vehicle, light, medium, heavy, long-range and super-heavy bombardment, light, medium and heavy anti-air, light, medium and heavy autocannon, , forward fire direction, construction, geological survey, STO, logistics and small logistics, HQ, xenoarchaeology and decontamination. Use the database IDs and fields for size, AP, damage, shots, supplies, allowed chassis and special traits. In DIM_GroundComponentType, Super-Heavy Bombardment is ID 60, Xenoarchaeology ID 64 and Decontamination ID 65.

Racial snapshots and effective combat ratings

Section titled “Racial snapshots and effective combat ratings”

For a pre-industrial race, the weapon and ship armour multipliers are 1. Otherwise the ground weapon modifier g uses the greatest count of researched technology levels among the Laser Focal Size, Railgun Type, Meson Focal Size, Particle Beam Strength and Carronade Calibre technology types. Counts 0 to 11 map to 3,5,6,8,10,12,15,18,21,25,30,36 in order. Larger counts map to 45. The modifier does not use maximum weapon diameter or damage directly. The ship armour snapshot a is the best researched armour component’s rating. Tracking defaults to 1,000 or the researched beam fire control speed AI. The ground class stores the snapshots as WeaponStrengthModifier and ArmourStrengthModifier in FCT_GroundUnitClass.

Ordinary component effective AP and damage are R(base*g,2). Anti-air damage is floor(R(base damage*g/20,2)²). Class armour is R(selected ground armour strength*a,1). HP is R(base HP*a,1), and infantry then multiplies HP by the largest positive HPEnhancement capability without a final rounding. These are saved snapshots and class values, not a live substitution of future racial technology into an old class.

The order of the calculation matters:

  1. Append the supplied ordered components. Size is S=R(base size+sum of component sizes,2) tons, and the construction rating sums the components’ construction ratings. Supplies sum the components’ SupplyUse, except that the fourth slot mistakenly adds the third component’s SupplyUse again instead of the fourth’s. A fourth component without a third makes the calculation fail.
  2. Initial BP is C=S/50*selected ground armour strength. The initial Vendarite recipe equals C.
  3. For a primary HQ component with positive capacity H, add clamp(H/200,10,250) tons (H/200 held between 10 and 250) and H/2500*ground armour strength BP. Vendarite is updated to that subtotal.
  4. Remove infantry-only capabilities from classes that are not infantry. Player races multiply BP by each remaining capability’s CostMultiplier. NPRs skip those multipliers. BP is rounded to 3 decimals. Vendarite is not recomputed after the capability multipliers.
  5. Add the STO package if one is selected, as described below.
  6. Create the ground class technology with RP D(C) for an STO class, otherwise D(5*C).

These are genuinely separate BP and mineral calculations, not a normalised recipe.

Static STO selection also requires active sensor technology and a researched, nonobsolete, nonprototype beam weapon other than CIWS. The ground class integrates the chosen weapon, a reactor, an active sensor and a single-weapon beam fire control. The nominal weapon recharge rounds up to a multiple of 5 seconds, and a zero recharge rate uses 5 seconds.

The point-defence choice uses range multiplier 1 and tracking multiplier 4. For standard control, with weapon range K and distance technology d=AI, the range multiplier is 1 when K<=d/2, 2 when K<=d, 3 when K<=1.5*d and 4 otherwise. The tracking multiplier is 1. Both use technology 26546 (Electronic Hardening Level 0, no hardening) and technology 82478 (Single-Weapon Fire Control). The maximum fire control range is R(fire control ComponentValue*1.25), and the effective weapon range is min(K,maximum fire control range). Tracking is the greater of the racial fire control speed and the weapon’s tracking, capped by the fire control’s tracking. The ECCM option uses the best researched ECCM, otherwise technology 54 (Electronic Counter-countermeasures - 0). The package size adds package HS*50 tons. The package BP adds package cost*selected ground armour strength. The package minerals are added without that armour multiplier.

The STO reactor search gives no reactor for a zero-power weapon. Otherwise it tries 0.1 to 30 HS by 0.1 for the first size s that satisfies R(best reactor AI*s*sqrt(s),1)>=weapon RechargeRate, then designs a normal reactor with technology 24625 (No Power Plant Boost). The search uses one-decimal output, while the final reactor output uses the normal two-decimal formula. Missing technology or no fit gives no reactor.

The STO active sensor search tries 0.1 to 30 HS by 0.1 for the first size s satisfying sqrt(best active AI*s*best EM AI/3.1416)*1000000>=effective weapon range. It then designs an ordinary active sensor at resolution 1 HS, with technology 26546 (no hardening) and the best researched ECCM regardless of the STO ECCM checkbox. No fit or missing sensor technology gives no sensor. Its recipe can be reproduced from the active sensor formula above. It is not a zero-cost targeting flag.

The designer preview calculates a draft. Ordinary Create registers the ground class and its technology and leaves research incomplete. Research controls can queue its development. Registration the game performs directly and the instant path both register the ground class and complete research at once, so these paths are not the same.

An upgrade returns the original class unless the armour snapshot has changed, or the weapon snapshot has changed and some component is a ground weapon (GroundWeapon). Otherwise it rebuilds the same chassis, armour, ordered components, capabilities, STO weapon and HQ capacity with current racial technology and ECCM enabled, adds a year suffix, and reuses an equivalent existing class or creates a new one. The original is marked obsolete only when a new class is created, not when an equivalent class is reused. Existing class statistics are not overwritten. A save keeps the snapshots and the ordered component IDs (ComponentA to ComponentD in FCT_GroundUnitClass), with capabilities in a separate table (FCT_GroundUnitCapability). Formation elements reference a class plus a quantity (FCT_GroundUnitFormationElement).

Templates obsolescence and saved definitions

Section titled “Templates obsolescence and saved definitions”

A component template (FCT_ShipComponentTemplate) stores the construction inputs. These are type, name, the selected background technology IDs, size, value, resolution, shots, engine multiplier, tracking, extra armour, fire control multipliers and special function. Creating a template copies those fields and, for a turret, also creates a template for the base weapon. Reusing a template runs the family’s design calculation again. It is not a byte-for-byte copy of a component’s numbers or mineral vector. The template name and link are restored after the rebuild.

Missing source technologies are handled according to two options. With neither prerequisite checking nor instant research, the most advanced researched technology of the same type is substituted. Checking gathers the missing path and its cost. Instant research completes the missing prerequisites and subtracts their DevelopCost from StartTechPoints. A template is therefore not a universal “upgrade everything to current technology” operation. Magazine rebuilding specifically uses the best researched armour.

Some rebuild inputs do not round-trip the original units. Decoy launcher rebuilding passes the stored installed size as the missile capacity input. Commercial jump drive rebuilding passes the stored maximum hull straight into a calculation that applies its commercial times 5 conversion again. Preview the design again before relying on the rebuilt size. Turret rebuilding gets the count by dividing the template shots by the base template shots and reruns the armour and gear calculations. Ship class template assembly is described in Ship and station design.

Renaming in the Technology View window changes the selected component or missile name but not the name of its linked technology. Obsolescence toggles the selected race’s obsolete flag (Obsolete in FCT_RaceTech). It is not a global deletion and does not rewrite physical stock. Missile obsolescence follows the same race-specific principle.

Deleting a race-specific definition requires the technology’s RaceID in FCT_TechSystem to match the race. It is refused for a component used in any class of any race, or for ordnance held in any ship or colony stock. Otherwise the matching definitions and technology are removed. These two checks do not amount to a full search of every queue, template or ground reference.

A saved ship component records all eleven minerals, the numerical derived fields, flags, prototype state, BGTech1 to BGTech7, the base turret weapon (TurretWeaponID), the template ID (ShipComponentTemplateID), the fire control multipliers and ExtraHTK. Loading requires a same-ID technology and a valid category, reads the numbers directly, then resolves the background technologies. It does not rerun the current design formulas. Technology rows and the race knowledge and obsolete rows are stored separately. A saved fixed or custom component can therefore keep values that differ from a freshly designed equivalent.

A saved missile records derived values, original size inputs, engine and child IDs, and payload, electronic and pod fields, but its recipe stores only Corbomite, Tritanium, Boronide, Uridium and Gallicite. Laser Corundium and pod Vendarite do not survive a save and reload through these recipe columns. Loading also reads the extra-warhead size (MSPMultipleWarheads) as a whole number although it is stored with decimals, so fractional 0.1 allowances can change. Child stages and total range are resolved in a single later pass. These are persistence differences, not alternate design recipes.

The following inputs are synthetic arithmetic examples. They do not claim that a particular saved game offers those technology values. All use research speed 100 unless stated otherwise.

Design and inputs Calculation and result
Ship engine s=10, t=1, E=5, F=0.1, thermal multiplier 1 Power 50 EP. Efficiency 0.1 L per EP-hour. Fuel 5 L per hour. BP and Gallicite 25. RP int(sqrt(125000))=353. Crew 10, HTK 3, explosion 10%, maximum explosion 12. It is military because the size is below 25 HS.
Reactor s=4, p=2, boost 1 Output 2*4*sqrt(4)=16. BP and Boronide 48. RP 489. Crew 8, HTK 2. The boost’s AI2 separately sets the explosion percentage.
Shield s=10, b=2, g=0.2 Strength 20, recharge amount 2. Stored recharge time floor(20*300/2)=300 seconds. BP and Corbomite 22. RP 331.
Unarmoured magazine s=4, feed f=1, neutralisation 75 Capacity 80 missile points, BP 20, RP 316. Duranium 5, Tritanium 15. Explosion chance 12.5%. Crew 2, HTK 1.
Railgun calibre AI2=8, AI3=8, velocity 20,000, capacitor 4 Four shots give power 8, recharge 4, size 8, BP 22.6. One shot gives power 2, recharge 1, size 2.6, BP 2.8. Both have a nominal 10-second interval. Per-shot damage stays the calibre AI.
Gauss 6 shots, size 2.5, accuracy 0.8, velocity 20,000 BP and Vendarite 30, crew 5, HTK 1. Six 1-damage shots per 5 seconds, no reactor demand.
Direct fire control distance 200,000, speed 1,500, multipliers 1, weapon-number AI, hardening AI2 and ECCM AI2 all 1 Range 200,000 km, tracking 1,500, size 0.5 HS, crew 2, HTK 0. Uridium and BP 10 because int(1500/1000)=1.
Missile engine size 1 point, E=5, t=1, F=0.1, no overthrust penalty s=0.05 HS, power 0.25, fuel efficiency 0.1*sqrt(200), about 1.41421356 L per EP-hour. Engine BP 0.125. Standalone engine RP 12, because 12.5 rounds to the even neighbour.
Missile using that engine, warhead size 1 at strength technology 4, fuel size 0.1, no other features Total size 2.1 points. Speed 2,381.0 km/s. Own fuel 250 L. Endurance R(250/(0.25*1.41421356)*3600,1), about 2,545,584.4 s. BP 1.125, from engine 0.125 plus warhead 1. Boronide and Gallicite 0.0625 each, Tritanium 1. Actual missile RP D(5.625)=167, displayed summary RP 112.5.
Ground class 50 tons, selected ground armour 2, capability cost multiplier 1.5, no HQ or STO Initial BP and Vendarite 2. Final BP 3, but Vendarite stays 2. Development D(15)=273. HP and armour still use the separately saved racial snapshots.

The examples follow the formulas in Ship engines, Power plants, Shields, Magazines, Railguns, Gauss cannons, Direct fire control, Missile engine, Missile BP mineral and fuel recipe, Size BP mineral and development sequence and the development cost in Definitions units and shared arithmetic.

When reproducing a design, keep the actual input technology fields and the order of operations. In particular, whole-number divisions in railgun, particle beam, meson, microwave and fire control costs, rounding before a minimum size, the commercial jump conversion, armour added after magazine development, the turret’s explicit mineral copying, the missile’s final-size clamp and save and reload omissions can all stop an idealised “cost per final ton” calculation from matching the stored values. Definition BP, RP and recipe and manufactured stock remain distinct throughout.

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