Refactor world bootstrap and allow empty startup worlds

This commit is contained in:
2026-03-29 13:22:48 -04:00
parent 640e147ea8
commit 0bb72bee35
79 changed files with 173146 additions and 9235 deletions

View File

@@ -0,0 +1,18 @@
[
{
"id": "liquid",
"name": "Liquid"
},
{
"id": "solid",
"name": "Solid"
},
{
"id": "container",
"name": "Container"
},
{
"id": "condensate",
"name": "Condensate"
}
]

4
shared/data/effects.json Normal file
View File

@@ -0,0 +1,4 @@
[
"work",
"sunlight"
]

View File

@@ -0,0 +1,14 @@
[
"countermeasure",
"weapon",
"missileturret",
"turret",
"engine",
"missile",
"shieldgenerator",
"scanner",
"mine",
"missilelauncher",
"ship_s",
"ship_xs"
]

View File

@@ -0,0 +1,11 @@
[
"countermeasures",
"drones",
"engines",
"missiles",
"shields",
"software",
"thrusters",
"turrets",
"weapons"
]

24596
shared/data/equipment.json Normal file

File diff suppressed because it is too large Load Diff

2136
shared/data/factions.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@
{
"ModuleTypes": [
"connectionmodule",
"production",
"defencemodule",
"dockarea",
"habitation",
"pier",
"storage",
"buildmodule",
"ventureplatform",
"processingmodule",
"recycling"
],
"AllModuleTypes": [
"habitation",
"buildmodule",
"dockarea",
"pier",
"storage",
"defencemodule",
"connectionmodule",
"processingmodule",
"recycling"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
[
"default",
"argon",
"teladi",
"paranid",
"recycling"
]

55
shared/data/races.json Normal file
View File

@@ -0,0 +1,55 @@
[
{
"id": "argon",
"name": "Argon",
"description": "The descendents of Terran colonists stranded from Earth centuries ago, the Argon became their own thriving civilisation covering a great many systems and forging relations with several alien races. Throughout their short history the Argon Federation has been plagued by war, notably with the Xenon. Their greatest challenge however came from the unlikely source of the reconnected Terrans of Earth where they were plunged into the costly Terran Conflict.",
"icon": "race_argon"
},
{
"id": "boron",
"name": "Boron",
"description": "The predominantly peaceful Boron are aquatic life-forms from the planet Nishala. While initially pacifist, the discovery of their world by the Split forced them to invent defences and adapt to war. Enjoying a close relationship with the Argon, the Boron remain a wise and measured people.",
"icon": "race_boron"
},
{
"id": "drone",
"name": "Drone",
"description": "Drones are designed to specialise in a narrow field of tasks. With AI research outlawed to avoid a similar situation to the Terraformer-Xenon evolution, drones are limited in scope and capability. However, results from Xenon research have led to advancements in drone technology, something which troubled many experts."
},
{
"id": "khaak",
"name": "Kha'ak",
"description": "Thought to have been wiped out during Operation Final Fury, very little is known about the Kha'ak other than they seem to be an insectile hive race hell-bent on the destruction of all those that share the Jump Gate network. As a hive race, it is suspected that individual intelligence gives way to a communal or caste mentality, but very little research into the species was completed before Operation Final Fury took place.",
"icon": "race_khaak"
},
{
"id": "paranid",
"name": "Paranid",
"description": "The physically imposing Paranid are often regarded as arrogant by several races which usually stems from their exceptional mathematic skills and religious fervour. Allied with the Split and distrusting of the Argon, the Paranid have been in several conflicts where they use their technological prowess and multilevel thinking to gain tactical advantages.",
"icon": "race_paranid"
},
{
"id": "split",
"name": "Split",
"description": "The aggressive Split live in a society constantly changing leadership where challenging factions rise up to impose a new Patriarch. Their short temper and fiery disposition puts them at odds with other races which has sometimes lead to war, notably with the Boron and Argon.",
"icon": "race_split"
},
{
"id": "teladi",
"name": "Teladi",
"description": "The lizard-like Teladi are one of the founding members of the Community of Planets and have a natural affinity towards business and the accumulation of profit. They enjoy favourable relations with other races although some find their drive for profit disconcerting. Their long lifespan gives them a unique view of the Jump Gate shutdown, as does their previous experience being cut off from their home system of Ianamus Zura.",
"icon": "race_teladi"
},
{
"id": "terran",
"name": "Terran",
"description": "The Terrans of the Solar System have a long history of spaceflight and exploring the Jump Gate network. After the events of the Terraformers over Earth, the Terrans severed their contact with the rest of the galaxy and had several centuries of rebuilding and advancement in isolation. Their brief return led to the Terran Conflict which preceded the mass disconnection of Jump Gates. It is unknown if the war precipitated this event.",
"icon": "race_terran"
},
{
"id": "xenon",
"name": "Xenon",
"description": "The Xenon are a mechanical race resulting from past Terran terraformer ships which eventually evolved intelligence. A constant threat in many areas of the galaxy, it is thought that the Jump Gate shutdown may stem their movements but given their disregard of time it is possible they may simply travel between stars. The Xenon have no known allies and communication with them is often relegated to folklore.",
"icon": "race_xenon"
}
]

View File

@@ -0,0 +1,12 @@
{
"worldGeneration": {
"seed": 8,
"targetSystemCount": 2,
"useKnownSystems": true,
"aiControllerFactionCount": 0,
"generatePlayerFaction": false
},
"initialStations": [],
"shipFormations": [],
"patrolRoutes": []
}

View File

@@ -1,11 +1,10 @@
{
"gameStartOptions": {
"seed": 1,
"worldGeneration": {
"targetSystemCount": 2,
"aiControllerFactionCount": 0,
"generatePlayerFaction": false
}
"worldGeneration": {
"seed": 8,
"targetSystemCount": 2,
"useKnownSystems": true,
"aiControllerFactionCount": 0,
"generatePlayerFaction": false
},
"initialStations": [
{
@@ -19,7 +18,7 @@
"module_gen_prod_energycells_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 1,
"lagrangeSide": -1
},
@@ -35,7 +34,7 @@
"module_gen_prod_refinedmetals_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 2,
"lagrangeSide": -1
},
@@ -50,7 +49,7 @@
"module_gen_prod_hullparts_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 0,
"lagrangeSide": 1
},
@@ -65,7 +64,7 @@
"module_gen_prod_claytronics_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 2,
"lagrangeSide": null
},
@@ -80,7 +79,7 @@
"module_gen_prod_quantumtubes_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 1,
"lagrangeSide": null
},
@@ -96,7 +95,7 @@
"module_gen_prod_graphene_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 0,
"lagrangeSide": -1
},
@@ -112,7 +111,7 @@
"module_gen_prod_siliconwafers_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 1,
"lagrangeSide": 1
},
@@ -128,7 +127,7 @@
"module_gen_prod_antimattercells_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 2,
"lagrangeSide": 1
},
@@ -144,7 +143,7 @@
"module_gen_prod_superfluidcoolant_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 3,
"lagrangeSide": -1
},
@@ -160,7 +159,7 @@
"module_gen_prod_water_01"
],
"systemId": "helios",
"factionId": "sol-dominion",
"factionId": "terran",
"planetIndex": 3,
"lagrangeSide": 1
},
@@ -175,7 +174,7 @@
"module_gen_prod_energycells_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 1,
"lagrangeSide": 1
},
@@ -191,7 +190,7 @@
"module_gen_prod_refinedmetals_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 2,
"lagrangeSide": 1
},
@@ -206,7 +205,7 @@
"module_gen_prod_hullparts_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 3,
"lagrangeSide": -1
},
@@ -221,7 +220,7 @@
"module_gen_prod_claytronics_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 2,
"lagrangeSide": null
},
@@ -236,7 +235,7 @@
"module_gen_prod_quantumtubes_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 1,
"lagrangeSide": null
},
@@ -252,7 +251,7 @@
"module_gen_prod_graphene_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 0,
"lagrangeSide": -1
},
@@ -268,7 +267,7 @@
"module_gen_prod_siliconwafers_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 0,
"lagrangeSide": 1
},
@@ -284,7 +283,7 @@
"module_gen_prod_antimattercells_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 1,
"lagrangeSide": -1
},
@@ -300,7 +299,7 @@
"module_gen_prod_superfluidcoolant_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"factionId": "argon",
"planetIndex": 2,
"lagrangeSide": -1
},
@@ -316,256 +315,111 @@
"module_gen_prod_water_01"
],
"systemId": "sol",
"factionId": "asterion-league",
"planetIndex": 3,
"lagrangeSide": 1
},
{
"label": "Syndicate Power Relay",
"color": "#91e6a8",
"objective": "power",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_liquid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 1,
"lagrangeSide": -1
},
{
"label": "Syndicate Refinery",
"color": "#91e6a8",
"objective": "refinery",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_solid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_refinedmetals_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 2,
"lagrangeSide": -1
},
{
"label": "Syndicate Hullworks",
"color": "#91e6a8",
"objective": "hullparts",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_hullparts_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 0,
"lagrangeSide": 1
},
{
"label": "Syndicate Clay Grid",
"color": "#91e6a8",
"objective": "claytronics",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_claytronics_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 2,
"lagrangeSide": null
},
{
"label": "Syndicate Quantum Yard",
"color": "#91e6a8",
"objective": "quantumtubes",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_quantumtubes_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 1,
"lagrangeSide": null
},
{
"label": "Syndicate Graphene Array",
"color": "#91e6a8",
"objective": "graphene",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_liquid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_graphene_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 0,
"lagrangeSide": -1
},
{
"label": "Syndicate Wafer Foundry",
"color": "#91e6a8",
"objective": "siliconwafers",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_solid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_siliconwafers_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 1,
"lagrangeSide": 1
},
{
"label": "Syndicate Antimatter Forge",
"color": "#91e6a8",
"objective": "antimattercells",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_liquid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_antimattercells_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 2,
"lagrangeSide": 1
},
{
"label": "Syndicate Coolant Loop",
"color": "#91e6a8",
"objective": "superfluidcoolant",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_liquid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_superfluidcoolant_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"planetIndex": 3,
"lagrangeSide": -1
},
{
"label": "Syndicate Hydro Plant",
"color": "#91e6a8",
"objective": "water",
"startingModules": [
"module_arg_dock_m_01_lowtech",
"module_arg_stor_solid_m_01",
"module_arg_stor_container_m_01",
"module_gen_prod_energycells_01",
"module_gen_prod_water_01"
],
"systemId": "perseus",
"factionId": "nadir-syndicate",
"factionId": "argon",
"planetIndex": 3,
"lagrangeSide": 1
}
],
"shipFormations": [
{
"shipId": "constructor",
"count": 1,
"center": [ 40, 0, 12 ],
"systemId": "helios",
"factionId": "sol-dominion"
},
{
"shipId": "miner",
"count": 4,
"center": [ 54, 0, 18 ],
"systemId": "helios",
"factionId": "sol-dominion"
},
{
"shipId": "hauler",
"count": 1,
"center": [ 62, 0, 8 ],
"systemId": "helios",
"factionId": "sol-dominion"
},
{
"shipId": "gas-miner",
"count": 4,
"center": [ 74, 0, 14 ],
"systemId": "helios",
"factionId": "sol-dominion"
},
{
"shipId": "constructor",
"count": 1,
"center": [ 42, 0, -16 ],
"shipId": "ship_arg_s_fighter_01_a",
"count": 6,
"center": [
0,
0,
0
],
"systemId": "sol",
"factionId": "asterion-league"
"factionId": "argon"
},
{
"shipId": "miner",
"shipId": "ship_ter_s_fighter_01_a",
"count": 6,
"center": [
200,
0,
0
],
"systemId": "helios",
"factionId": "terran"
},
{
"shipId": "ship_arg_s_miner_solid_01_a",
"count": 4,
"center": [ 56, 0, -12 ],
"center": [
1200,
0,
-600
],
"systemId": "sol",
"factionId": "asterion-league"
"factionId": "argon"
},
{
"shipId": "hauler",
"count": 1,
"center": [ 68, 0, -18 ],
"systemId": "sol",
"factionId": "asterion-league"
},
{
"shipId": "gas-miner",
"shipId": "ship_ter_s_miner_solid_01_a",
"count": 4,
"center": [ 76, 0, -22 ],
"systemId": "sol",
"factionId": "asterion-league"
},
{
"shipId": "constructor",
"count": 1,
"center": [ 44, 0, 20 ],
"systemId": "perseus",
"factionId": "nadir-syndicate"
},
{
"shipId": "miner",
"count": 4,
"center": [ 58, 0, 24 ],
"systemId": "perseus",
"factionId": "nadir-syndicate"
},
{
"shipId": "hauler",
"count": 1,
"center": [ 68, 0, 18 ],
"systemId": "perseus",
"factionId": "nadir-syndicate"
},
{
"shipId": "gas-miner",
"count": 4,
"center": [ 78, 0, 22 ],
"systemId": "perseus",
"factionId": "nadir-syndicate"
"center": [
-1200,
0,
600
],
"systemId": "helios",
"factionId": "terran"
}
],
"patrolRoutes": [
{
"systemId": "sol",
"points": [
[
-1800,
0,
-1600
],
[
1800,
0,
-1600
],
[
1800,
0,
1600
],
[
-1800,
0,
1600
]
]
},
{
"systemId": "helios",
"points": [
[
-1800,
0,
-1600
],
[
1800,
0,
-1600
],
[
1800,
0,
1600
],
[
-1800,
0,
1600
]
]
}
],
"patrolRoutes": [],
"miningDefaults": {
"nodeSystemId": "perseus",
"refinerySystemId": "helios"
"nodeSystemId": "sol",
"refinerySystemId": "sol"
}
}

View File

@@ -0,0 +1,9 @@
[
"auxiliary",
"mine",
"build",
"fight",
"trade",
"salvage",
"dismantling"
]

View File

@@ -0,0 +1,24 @@
[
"resupplier",
"miner",
"carrier",
"fighter",
"heavyfighter",
"destroyer",
"largeminer",
"freighter",
"bomber",
"scavenger",
"frigate",
"transporter",
"interceptor",
"scout",
"courier",
"builder",
"corvette",
"police",
"battleship",
"gunboat",
"tug",
"compactor"
]

View File

File diff suppressed because it is too large Load Diff

7
shared/data/sizes.json Normal file
View File

@@ -0,0 +1,7 @@
[
"extrasmall",
"small",
"medium",
"large",
"extralarge"
]

View File

@@ -0,0 +1,5 @@
[
"container",
"liquid",
"solid"
]

View File

@@ -0,0 +1,5 @@
[
"standard",
"missile",
"mining"
]

View File

@@ -0,0 +1,76 @@
[
{
"id": "agricultural",
"name": "Agricultural Goods",
"factoryName": "Agricultural Goods Factory",
"icon": "be_upgrade_agricultural",
"tier": 5
},
{
"id": "energy",
"name": "Energy",
"factoryName": "Energy Complex",
"icon": "be_upgrade_energy",
"tier": 1
},
{
"id": "food",
"name": "Food",
"factoryName": "Farm",
"icon": "be_upgrade_food",
"tier": 6
},
{
"id": "gases",
"name": "Gases",
"factoryName": "Gas Refinery",
"icon": "be_upgrade_refined"
},
{
"id": "hightech",
"name": "High Tech Goods",
"factoryName": "High Tech Factory",
"icon": "be_upgrade_hightech",
"tier": 3
},
{
"id": "ice",
"name": "Ice",
"factoryName": "Ice Refinery",
"icon": "be_upgrade_water"
},
{
"id": "minerals",
"name": "Minerals",
"factoryName": "Mineral Refinery",
"icon": "be_upgrade_refined"
},
{
"id": "pharmaceutical",
"name": "Pharmaceutical Goods",
"factoryName": "Pharmaceutical Goods Factory",
"icon": "be_upgrade_pharmaceutical",
"tier": 7
},
{
"id": "refined",
"name": "Refined Goods",
"factoryName": "Refined Goods Complex",
"icon": "be_upgrade_refined",
"tier": 2
},
{
"id": "shiptech",
"name": "Ship Technology",
"factoryName": "Ship Technology Factory",
"icon": "be_upgrade_shiptech",
"tier": 4
},
{
"id": "water",
"name": "Water",
"factoryName": "Water Refinery",
"icon": "be_upgrade_water",
"tier": 2
}
]

94
shared/data/workers.json Normal file
View File

@@ -0,0 +1,94 @@
[
{
"race": "argon",
"amount": 200,
"consumption": [
{
"ware": "foodrations",
"amount": 450
},
{
"ware": "medicalsupplies",
"amount": 270
}
]
},
{
"race": "teladi",
"amount": 200,
"consumption": [
{
"ware": "nostropoil",
"amount": 228
},
{
"ware": "medicalsupplies",
"amount": 270
}
]
},
{
"race": "paranid",
"amount": 200,
"consumption": [
{
"ware": "sojahusk",
"amount": 288
},
{
"ware": "medicalsupplies",
"amount": 270
}
]
},
{
"race": "split",
"amount": 200,
"consumption": [
{
"ware": "cheltmeat",
"amount": 102
},
{
"ware": "scruffinfruits",
"amount": 138
},
{
"ware": "medicalsupplies",
"amount": 270
}
]
},
{
"race": "terran",
"amount": 200,
"consumption": [
{
"ware": "terranmre",
"amount": 258
},
{
"ware": "medicalsupplies",
"amount": 270
}
]
},
{
"race": "boron",
"amount": 200,
"consumption": [
{
"ware": "bofu",
"amount": 90
},
{
"ware": "medicalsupplies",
"amount": 198
},
{
"ware": "water",
"amount": 162
}
]
}
]