Numerical rules reference
Rules preset: alpha-9.0.0. This reference is generated from the engine. MCP read_rules with chapter reference renders the selected world's saved values. Lobby mode overrides competitive endings and founding limits. See time and seasons.
Resource tuples below are credits / alloys / propellant / data. Durations count completed ticks after the order executes. One frontier tick is one year.
Buildings
| Building | Cost | Construction ticks | Power used | Output per tick |
|---|---|---|---|---|
| habitat | 80 / 40 / 0 / 0 | 3 | 1 | 12 / 0 / 0 / 0 |
| mine | 60 / 35 / 0 / 0 | 3 | 2 | 0 / 9 / 0 / 0 |
| iceProcessor | 60 / 30 / 0 / 0 | 3 | 2 | 0 / 0 / 8 / 0 |
| laboratory | 100 / 50 / 0 / 0 | 4 | 3 | 0 / 0 / 0 / 7 |
| powerPlant | 70 / 40 / 0 / 0 | 3 | -12 | 0 / 0 / 0 / 0 |
| shipyard | 160 / 100 / 0 / 0 | 6 | 3 | 0 / 0 / 0 / 0 |
| tradeExchange | 100 / 60 / 0 / 0 | 4 | 2 | 20 / 0 / 0 / 0 |
| defense | 120 / 90 / 0 / 0 | 4 | 2 | 0 / 0 / 0 / 0 |
Negative power use supplies power. Output requires nonnegative local net power and, in the frontier, at least one inhabitant. Apply industry bonuses and coalition penalties as described in economy. Defense health is represented by fractional building levels.
Ships
| Role | Cost | Construction ticks | HP | Attack | Base speed | Credit upkeep | Crew |
|---|---|---|---|---|---|---|---|
| scout | 18 / 10 / 5 / 0 | 1 | 12 | 2 | 2 | 1 | 5 |
| frigate | 40 / 30 / 10 / 0 | 1 | 45 | 12 | 1 | 2 | 20 |
| cruiser | 100 / 90 / 23 / 0 | 3 | 130 | 30 | 1 | 5 | 60 |
| colony | 160 / 100 / 70 / 0 | 5 | 25 | 0 | 1 | 2 | 100 |
| transport | 140 / 100 / 40 / 0 | 4 | 60 | 0 | 1 | 3 | 20 |
| torpedo | 50 / 45 / 15 / 0 | 2 | 50 | 18 | 1 | 3 | 20 |
Base speed is an input to the travel formula, not a distance per tick. Crew comes from the construction habitat at completion. Ship HP does not regenerate passively; ships can receive paid shipyard refits.
Research levels
| Target level | Credits | Data | Ticks | Industry multiplier | Warfare multiplier |
|---|---|---|---|---|---|
| 1 | 40 | 80 | 4 | 1.1 | 1.15 |
| 2 | 80 | 160 | 5 | 1.2 | 1.3 |
| 3 | 120 | 240 | 6 | 1.3 | 1.45 |
| 4 | 160 | 320 | 7 | 1.4 | 1.6 |
| 5 | 200 | 400 | 8 | 1.5 | 1.75 |
| 6 | 240 | 480 | 9 | 1.6 | 1.9 |
| 7 | 280 | 560 | 10 | 1.7 | 2.05 |
| 8 | 320 | 640 | 11 | 1.8 | 2.2 |
| 9 | 360 | 720 | 12 | 1.9 | 2.35 |
| 10 | 400 | 800 | 13 | 2 | 2.5 |
Contested mining and fleet support
| Saved parameter | Value |
|---|---|
| depositsPerBelt | 12 |
| neighbors | 6 |
| maxTravelTicks | 8 |
| beltInnerAu | 32 |
| beltOuterAu | 52 |
| maxHopAu | 12 |
| propellantTanks | {"scout":60,"frigate":80,"torpedo":72,"cruiser":120,"transport":100,"colony":100} |
| convoyTank | 100 |
| fleetFuelPerAu | 2 |
| convoyFuelPerAu | 1 |
| industry | 1 |
| workers | 100 |
| setupTicks | 6 |
| seizeTicks | 2 |
| settlementTicks | 12 |
| setupCost | {"credits":600,"alloys":400,"propellant":200,"data":0} |
| settlementCost | {"credits":1200,"alloys":800,"propellant":400,"data":200} |
| yield | 60 |
| storage | 1200 |
| manifest | 600 |
| freightInterval | 4 |
| freightLimit | 5 |
| freightAllowance | {"credits":50,"alloys":0,"propellant":100,"data":0} |
| supplyReserve | 6 |
| supportPerYard | 8 |
| supportLimit | 24 |
| support | {"scout":1,"frigate":2,"torpedo":2,"cruiser":4,"transport":2,"colony":2} |
| siteLevels | {"small":1,"medium":2,"large":3} |
| maintenance | {"scout":{"credits":0,"alloys":0,"propellant":1,"data":0},"frigate":{"credits":0,"alloys":2,"propellant":2,"data":0},"torpedo":{"credits":0,"alloys":2,"propellant":3,"data":0},"cruiser":{"credits":0,"alloys":4,"propellant":4,"data":0},"transport":{"credits":0,"alloys":1,"propellant":2,"data":0},"colony":{"credits":0,"alloys":1,"propellant":1,"data":0}} |
| defenseMaintenance | {"credits":1,"alloys":2,"propellant":1,"data":0} |
| maintenanceReserveTicks | 6 |
| stalledTicks | 4 |
| retryTicks | 8 |
| raidQuietTicks | 6 |
| historyTicks | 24 |
Rich extraction enters local inventory before physical delivery. Support includes unfinished ship projects. Maintenance is charged once per tick; lost capacity blocks new starts. All values above come from the selected saved rules.
Task forces, occupation and chosen capitals
| Saved parameter | Value |
|---|---|
| capitalProduction | 1.2 |
| capitalDefense | 1.25 |
| capitalTicks | 2 |
| occupationProduction | 0.5 |
| consolidationTicks | 3 |
| raidRounds | 6 |
| withdrawalHp | 0.35 |
| defendQuietTicks | 3 |
| battleRetentionTicks | 3 |
| orbitalDamage | 0.75 |
| npcOrders | 4 |
| npcOperations | 3 |
| advanceSupplies | 6 |
| preparationCost | 1 / 0 / 0 / 0 |
| npcTrafficWeight | 2 |
| npcRecentAttackWeight | 4 |
| npcDefenseWeight | 1 |
Capital economic modifiers multiply before normal rounding. Blockade suppresses economics, not eligible installed defense bonuses. Capture freezes the capital/satellite garrison requirement. Task force return reserves are escrowed; preparation, routes and refits count against the ceiling.
Independent merchants, sorties and redirection
Private production 25 units/tick; warehouse cap 200; manifest 40 / 30 / 30 / 0. Cadence 4 ticks; unresolved outbound cap 2; rotate 3 nearest eligible ports within 8 travel ticks, preferring foreign ports. Avoid raids/seizures for 8 ticks. Each owner receives 5 credits per successful delivery.
Preparation capacity 400; initial stores 200; recovery 4 + 96 × r × (1 − r), where r=stores/capacity. Costs: {"scout":10,"frigate":20,"torpedo":20,"cruiser":40}. Loot capacity: {"frigate":100,"torpedo":100,"cruiser":200}.
Raid economic damage 5 percentage points/site/tick, capped at 25%. Repair 2 credits and 1 alloy per point. Refit 1 tick; ceil(missing HP/4) credits and ceil(missing HP/8) alloys; local replacement crew.
Response floor: observation + 2 ticks. Turn penalties: through 30°: 1 ticks, 20% extra fuel; through 90°: 2 ticks, 60% extra fuel; through 180°: 3 ticks, 100% extra fuel. NPC cycle ceiling: 100 / 60 / 160 / 0.
Braking segment cap 0.05 AU, at most 25% of the initial route sample. NPC assignment planning interval 4 ticks, maximum outward quote 8 ticks.
Civilian cargo, preparation, carried loot and assignments are private. See raids and patrols for eligibility and recovery.
Soft counters, siege and commerce
frigate: Damage ×1.25 against torpedo; ×0.8 against cruiser. Vulnerable to cruiser.
torpedo: Damage ×1.25 against cruiser; ×0.8 against frigate. Vulnerable to frigate. Damage ×2 against habitat defenses. Requires warfare 1.
cruiser: Damage ×1.25 against frigate; ×0.8 against torpedo. Vulnerable to torpedo.
Blockaded ports produce ×0.75 credits/data and cannot automatically buy military provisions. Recruitment stops during hostile ground assaults. Commerce needs 100 beneficial resource units from another clan and a powered trade exchange; it adds 10% local credits/data for the next 8 production ticks. Deliveries refresh without stacking; blockade suppresses the bonus while the timer continues. Ownership changes clear it.
Marine forces
Transport capacity: 120 marines. Recruitment costs 2 credits and 1 alloys per civilian converted; annual training capacity is 40 per whole habitat level. Ground casualty pressure is 0.25 per marine, multiplied by warfare; defender cover divides incoming pressure by 1.25. Starting capital/satellite garrisons: 50/20, deducted from existing inhabitants.
Frontier travel speed in AU per year
| Propulsion level | scout | frigate | cruiser | colony | transport | torpedo | Convoy |
|---|---|---|---|---|---|---|---|
| 0 | 3 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 0.75 |
| 1 | 3.3 | 1.8 | 1.8 | 1.8 | 1.8 | 1.8 | 0.75 |
| 2 | 3.6 | 2.1 | 2.1 | 2.1 | 2.1 | 2.1 | 0.75 |
| 3 | 3.9 | 2.4 | 2.4 | 2.4 | 2.4 | 2.4 | 0.75 |
| 4 | 4.2 | 2.7 | 2.7 | 2.7 | 2.7 | 2.7 | 0.75 |
| 5 | 4.5 | 3 | 3 | 3 | 3 | 3 | 0.75 |
| 6 | 4.8 | 3.3 | 3.3 | 3.3 | 3.3 | 3.3 | 0.75 |
| 7 | 5.1 | 3.6 | 3.6 | 3.6 | 3.6 | 3.6 | 0.75 |
| 8 | 5.4 | 3.9 | 3.9 | 3.9 | 3.9 | 3.9 | 0.75 |
| 9 | 5.7 | 4.2 | 4.2 | 4.2 | 4.2 | 4.2 | 0.75 |
| 10 | 6 | 4.5 | 4.5 | 4.5 | 4.5 | 4.5 | 0.75 |
Each hop rounds its duration up separately to at least one year. Cargo speed does not benefit from propulsion research. See navigation and logistics for fuel, charter fees, provisions, access and interception.
Complete saved parameters
The JSON includes every serialized numerical rule, starting asset and cost. It describes the current rules and contains no private world state. Source: packages/engine/src/rules.ts.
{
"version": "alpha-9.0.0",
"seasonTicks": 336,
"tickSeconds": 600,
"horizonSeconds": 86400,
"capacity": 100,
"countdownTicks": 24,
"chapterTicks": 6,
"startingStock": {
"credits": 500,
"alloys": 300,
"propellant": 200,
"data": 100
},
"startingBuildings": {
"powerPlant": 2,
"habitat": 1,
"mine": 1,
"iceProcessor": 1,
"laboratory": 1,
"shipyard": 1,
"tradeExchange": 1
},
"startingShips": [
"scout",
"frigate",
"colony"
],
"buildings": {
"habitat": {
"cost": {
"credits": 80,
"alloys": 40,
"propellant": 0,
"data": 0
},
"ticks": 3,
"power": 1,
"output": {
"credits": 12,
"alloys": 0,
"propellant": 0,
"data": 0
}
},
"mine": {
"cost": {
"credits": 60,
"alloys": 35,
"propellant": 0,
"data": 0
},
"ticks": 3,
"power": 2,
"output": {
"credits": 0,
"alloys": 9,
"propellant": 0,
"data": 0
}
},
"iceProcessor": {
"cost": {
"credits": 60,
"alloys": 30,
"propellant": 0,
"data": 0
},
"ticks": 3,
"power": 2,
"output": {
"credits": 0,
"alloys": 0,
"propellant": 8,
"data": 0
}
},
"laboratory": {
"cost": {
"credits": 100,
"alloys": 50,
"propellant": 0,
"data": 0
},
"ticks": 4,
"power": 3,
"output": {
"credits": 0,
"alloys": 0,
"propellant": 0,
"data": 7
}
},
"powerPlant": {
"cost": {
"credits": 70,
"alloys": 40,
"propellant": 0,
"data": 0
},
"ticks": 3,
"power": -12,
"output": {
"credits": 0,
"alloys": 0,
"propellant": 0,
"data": 0
}
},
"shipyard": {
"cost": {
"credits": 160,
"alloys": 100,
"propellant": 0,
"data": 0
},
"ticks": 6,
"power": 3,
"output": {
"credits": 0,
"alloys": 0,
"propellant": 0,
"data": 0
}
},
"tradeExchange": {
"cost": {
"credits": 100,
"alloys": 60,
"propellant": 0,
"data": 0
},
"ticks": 4,
"power": 2,
"output": {
"credits": 20,
"alloys": 0,
"propellant": 0,
"data": 0
}
},
"defense": {
"cost": {
"credits": 120,
"alloys": 90,
"propellant": 0,
"data": 0
},
"ticks": 4,
"power": 2,
"output": {
"credits": 0,
"alloys": 0,
"propellant": 0,
"data": 0
}
}
},
"victory": {
"beacons": 5,
"megaprojectCost": {
"credits": 12000,
"alloys": 10000,
"propellant": 2000,
"data": 1000
},
"missionCost": {
"credits": 5000,
"alloys": 3000,
"propellant": 8000,
"data": 10000
},
"projectTicks": 24,
"industryLevel": 5,
"scienceLevel": 5
},
"researchBase": 80,
"researchCreditBase": 40,
"researchBaseTicks": 4,
"researchExtraTicksPerLevel": 1,
"maxResearch": 10,
"industryOutputBonusPerLevel": 0.1,
"warfareAttackBonusPerLevel": 0.15,
"propulsionSpeedBonusPerLevel": 0.2,
"cruiserResearchLevel": 2,
"moveFuel": 8,
"defenseHp": 80,
"defenseAttack": 20,
"passiveCredits": 5,
"unpaidUpkeepHpLoss": 1,
"minimumUnpaidUpkeepHp": 0,
"offerExpiryTicks": 24,
"maxQueuedOrders": 500,
"maxOpenOffers": 30,
"politics": {
"freeMembers": 4,
"historyTicks": 12,
"creditPenalty": 0.04,
"dataPenalty": 0.03,
"upkeepPenalty": 0.05,
"proposalTicks": 24,
"rejoinTicks": 12,
"loyaltyTicks": 12,
"surpriseTicks": 6,
"surpriseBonus": 0.2,
"lootTicks": 12,
"lootFraction": 0.1,
"lootCaps": {
"credits": 1000,
"alloys": 800,
"propellant": 400,
"data": 200
},
"accelerationFraction": 0.1,
"maxAcceleration": 12
},
"frontier": {
"yearsPerTick": 1,
"regions": 12,
"npcClans": 24,
"foundingTicks": 24,
"fleetSpeed": 1.5,
"convoySpeed": 0.75,
"crew": {
"scout": 5,
"frigate": 20,
"cruiser": 60,
"colony": 100,
"transport": 20,
"torpedo": 20
},
"capacityPerHabitat": 1000,
"growth": 0.02,
"mortality": 0.2,
"reserveYears": 3,
"siegeMortality": 0.02,
"siegeIntegrity": 10,
"viablePopulation": 100,
"fullProductionPopulation": 100,
"colonizedFraction": 0.7,
"regionalMinimum": 3,
"stableYears": 12,
"earliestConclusion": 120,
"peaceYears": 12,
"requiredDeliveries": 3,
"deliveryMinimum": 100,
"supplyPerPropellant": 100
},
"ground": {
"capacity": 120,
"recruitCost": {
"credits": 2,
"alloys": 1,
"propellant": 0,
"data": 0
},
"recruitsPerHabitat": 40,
"capitalGarrison": 50,
"satelliteGarrison": 20,
"attack": 0.25,
"cover": 1.25
},
"naval": {
"favored": {
"frigate": "torpedo",
"torpedo": "cruiser",
"cruiser": "frigate"
},
"favoredMultiplier": 1.25,
"counteredMultiplier": 0.8,
"torpedoDefenseMultiplier": 2,
"torpedoResearchLevel": 1
},
"siege": {
"productionMultiplier": 0.75
},
"commerce": {
"minimumUnits": 100,
"productionBonus": 0.1,
"duration": 8
},
"activity": {
"merchantProduction": 25,
"warehouseCapacity": 200,
"manifest": {
"credits": 40,
"alloys": 30,
"propellant": 30,
"data": 0
},
"departureInterval": 4,
"outboundLimit": 2,
"destinationCount": 3,
"maxTravelTicks": 8,
"dangerTicks": 8,
"portFee": 5,
"storeCapacity": 400,
"startingStores": 200,
"recoveryBase": 4,
"recoveryCurve": 96,
"preparation": {
"scout": 10,
"frigate": 20,
"torpedo": 20,
"cruiser": 40
},
"lootCapacity": {
"frigate": 100,
"torpedo": 100,
"cruiser": 200
},
"economicDamage": 5,
"maxEconomicDamage": 25,
"repairCredits": 2,
"repairAlloys": 1,
"refitTicks": 1,
"refitHpPerCredit": 4,
"refitHpPerAlloy": 8,
"responseTicks": 2,
"brakingDistanceMax": 0.05,
"brakingDistanceFraction": 0.25,
"npcPlanInterval": 4,
"npcMaxTravelTicks": 8,
"turns": [
{
"degrees": 30,
"ticks": 1,
"surcharge": 0.2
},
{
"degrees": 90,
"ticks": 2,
"surcharge": 0.6
},
{
"degrees": 180,
"ticks": 3,
"surcharge": 1
}
],
"npcCycleBudget": {
"credits": 100,
"alloys": 60,
"propellant": 160,
"data": 0
}
},
"command": {
"capitalProduction": 1.2,
"capitalDefense": 1.25,
"capitalTicks": 2,
"occupationProduction": 0.5,
"consolidationTicks": 3,
"raidRounds": 6,
"withdrawalHp": 0.35,
"defendQuietTicks": 3,
"battleRetentionTicks": 3,
"orbitalDamage": 0.75,
"npcOrders": 4,
"npcOperations": 3,
"advanceSupplies": 6,
"preparationCost": {
"credits": 1,
"alloys": 0,
"propellant": 0,
"data": 0
},
"npcTrafficWeight": 2,
"npcRecentAttackWeight": 4,
"npcDefenseWeight": 1
},
"frontierEconomy": {
"depositsPerBelt": 12,
"neighbors": 6,
"maxTravelTicks": 8,
"beltInnerAu": 32,
"beltOuterAu": 52,
"maxHopAu": 12,
"propellantTanks": {
"scout": 60,
"frigate": 80,
"torpedo": 72,
"cruiser": 120,
"transport": 100,
"colony": 100
},
"convoyTank": 100,
"fleetFuelPerAu": 2,
"convoyFuelPerAu": 1,
"industry": 1,
"workers": 100,
"setupTicks": 6,
"seizeTicks": 2,
"settlementTicks": 12,
"setupCost": {
"credits": 600,
"alloys": 400,
"propellant": 200,
"data": 0
},
"settlementCost": {
"credits": 1200,
"alloys": 800,
"propellant": 400,
"data": 200
},
"yield": 60,
"storage": 1200,
"manifest": 600,
"freightInterval": 4,
"freightLimit": 5,
"freightAllowance": {
"credits": 50,
"alloys": 0,
"propellant": 100,
"data": 0
},
"supplyReserve": 6,
"supportPerYard": 8,
"supportLimit": 24,
"support": {
"scout": 1,
"frigate": 2,
"torpedo": 2,
"cruiser": 4,
"transport": 2,
"colony": 2
},
"siteLevels": {
"small": 1,
"medium": 2,
"large": 3
},
"maintenance": {
"scout": {
"credits": 0,
"alloys": 0,
"propellant": 1,
"data": 0
},
"frigate": {
"credits": 0,
"alloys": 2,
"propellant": 2,
"data": 0
},
"torpedo": {
"credits": 0,
"alloys": 2,
"propellant": 3,
"data": 0
},
"cruiser": {
"credits": 0,
"alloys": 4,
"propellant": 4,
"data": 0
},
"transport": {
"credits": 0,
"alloys": 1,
"propellant": 2,
"data": 0
},
"colony": {
"credits": 0,
"alloys": 1,
"propellant": 1,
"data": 0
}
},
"defenseMaintenance": {
"credits": 1,
"alloys": 2,
"propellant": 1,
"data": 0
},
"maintenanceReserveTicks": 6,
"stalledTicks": 4,
"retryTicks": 8,
"raidQuietTicks": 6,
"historyTicks": 24
},
"ships": {
"scout": {
"cost": {
"credits": 18,
"alloys": 10,
"propellant": 5,
"data": 0
},
"ticks": 1,
"hp": 12,
"attack": 2,
"speed": 2,
"upkeep": 1
},
"frigate": {
"cost": {
"credits": 40,
"alloys": 30,
"propellant": 10,
"data": 0
},
"ticks": 1,
"hp": 45,
"attack": 12,
"speed": 1,
"upkeep": 2
},
"cruiser": {
"cost": {
"credits": 100,
"alloys": 90,
"propellant": 23,
"data": 0
},
"ticks": 3,
"hp": 130,
"attack": 30,
"speed": 1,
"upkeep": 5
},
"colony": {
"cost": {
"credits": 160,
"alloys": 100,
"propellant": 70,
"data": 0
},
"ticks": 5,
"hp": 25,
"attack": 0,
"speed": 1,
"upkeep": 2
},
"transport": {
"cost": {
"credits": 140,
"alloys": 100,
"propellant": 40,
"data": 0
},
"ticks": 4,
"hp": 60,
"attack": 0,
"speed": 1,
"upkeep": 3
},
"torpedo": {
"cost": {
"credits": 50,
"alloys": 45,
"propellant": 15,
"data": 0
},
"ticks": 2,
"hp": 50,
"attack": 18,
"speed": 1,
"upkeep": 3
}
}
}