# What the generator builds explored systems from, past Two Cradle. # # A system is made from a seed and a tier (generator.rs; docs/expeditions.md) # and then kept in the save as it was made, so changing a number here # changes systems explored from then on, never ones already in a save. # # Every number here is a first draft. # Who holds every explored system (docs/empire.md): a factions.toml row. Its # bands (bands.toml `faction`) keep the hideouts, and its garrison for the # system's top tier guards the planet. holder = "empire" # The planet's card says "Held by {holder_title}". holder_title = "the Empire" # Generated space runs from tier 7, right after Two Cradle, to tier 20. A # system spans three tiers: 7-9, 10-12, 13-15, 16-18, and 19-20 at the top. first_tier = 7 last_tier = 20 span = 3 # Stars per system, and how big each is. stars = [1, 3] star_radius = [240.0, 420.0] star_colors = ["#cfe3ff", "#ffe9b8", "#ff9a6a", "#ffd27a", "#b8c9ff", "#ff7a5c", "#e8f0ff"] # The tier climbs from the star you arrive by to the star the holder keeps # its planet beside. Each star's first tier holds inside its first ring and # one more past each ring; rings stand this far apart. A third closer than # they first were (Rheisen, 2026-10-17: the space felt empty), which brings # the stars a third closer too. ring_step = [3500.0, 4300.0] # Room between two stars' outermost belts. star_gap = [2700.0, 4000.0] # How far a star may stand off the line from the first star to the last, as # a share of the distance to its neighbor. star_sway = 0.25 # Its hideouts, raids and the holder's roamers are counted for a system of # `density_radius` (Two Cradle's size). A bigger one holds more of them by # area, up to `density_most` times as many, so its bands stand about as # thick on the ground as the last system's (generator.rs `crowding`). density_radius = 21500.0 density_most = 2.0 # Belts per system: at least one in the bottom tier and one in the top. belts = [2, 4] belt_fields = [5, 7] belt_width = [420.0, 600.0] belt_reserve = 1000.0 belt_regrowth = 88.0 # A belt's ores, by share: its tier's ore and crystal, and some of the next # tier's (which rich pockets favor). A tier 20 belt has only its own. ores = { ore = 40, crystal = 22, next_ore = 25, next_crystal = 13 } # Asteroid clouds: patches of ore and crystal on the stars' flanks, past # their outermost belts and off the lane from the gate to the planet, each in # its star's outermost tier. Hideouts keep clear of them and raids don't reach # them: somewhere a fleet can work a tier's resources apart from the holder's # ships. clouds = [3, 4] cloud_radius = [700.0, 1000.0] cloud_fields = [4, 6] cloud_gap = 900.0 # The gate you arrive by stands this far out from the first star, as a share # of a ring: inside the bottom tier. gate_orbit = 0.3 # The holder's planet stands this far past the last star's outermost belt. planet_gap = 1400.0 planet_radius = [140.0, 200.0] # Worlds nobody lives on, round each star, for terrain: molten close in, # frozen far out (generator.rs lay_bodies, PlanetKind::for_orbit). bodies = [1, 2] body_radius = [90.0, 170.0] # The salvage field: one per system, behind the first star past its # outermost belt, so the gate you arrive by stands between the two: what's # left of everyone who came in before you. Salvage of that star's outermost # tier and some of the next tier's, in a patch like a cloud (hideouts keep # clear, raids don't reach it). Salvage goes into recipes a little at a time, # so it holds less than a belt and comes back slower. [wrecks] radius = [700.0, 900.0] fields = [4, 5] gap = 900.0 reserve = 500.0 regrowth = 20.0 salvage = 60 next_salvage = 40 # The independent research lab (labs.rs): a system whose tiers hold a Ferrum # or Helion mark III has one, holding those blueprints. It's hidden until a # scan finds it, and guarded by its own security on Imperial hulls. Sink the # guards, bring a ship within `reach` and take one blueprint; your shipyard # develops it. Taking one starts a countdown, then the blast takes a share of # the health of every ship still within `blast_radius` (`blast_share` at the # lab, none at the edge) and the lab is gone. The blast never sinks a ship. [labs] reach = 600.0 patrols = [2, 3] beat_distance = [800.0, 1300.0] beat_length = [900.0, 1500.0] radius = [950.0, 1250.0] countdown = 30.0 blast_radius = 1600.0 blast_share = 0.75 names = ["The {name} Institute", "{name} Research Station", "The {name} Works", "{name} Laboratories"] description = "An independent research lab: nobody's, and paying well to stay that way. Its security flies Imperial hulls under the lab's own colors." security = "{lab} Security" # Sink the holder's garrison, then hold the area round its planet with no # enemy in it, and the planet is yours (stronghold.rs). [stronghold] hold_seconds = 120.0 hold_radius = 1000.0 # Hideouts and rich pockets, as in a system file's [spawns]. [spawns] initial_hideouts = 12 max_hideouts = 16 interval = 20.0 lifetime = 1200.0 rich_pocket_chance = 0.3 max_rich_pockets = 3 rich_pocket_reserve = 900.0 # Miners at a quiet field of any belt, now and then: the prospecting bands # flown as the Empire flies them (prospectors.rs), Imperial Bores and all. [spawns.prospectors] belts = [] chance = 0.12 max = 2 lifetime = 600.0 [spawns.raids] chance = 0.12 max = 3 reach = 7000.0 linger = 180.0 # Where an explored system goes on the galaxy map (galaxy.toml [map] units): # `origin` for the first span (tiers 7-9), one `step` further for each span # after it, moved up to `jitter` either way so two of a span don't stack. [map] origin = [6.6, -2.4] step = [3.2, -0.8] jitter = 1.2 # Imperial names: a stem and an ending make a system's name; the planet takes # a second name in one of the patterns ({name} is where it goes). Stars take # the system's name and a number. [names] stems = [ "Aurel", "Cael", "Corvin", "Domit", "Fabric", "Flav", "Hadrian", "Jul", "Lucret", "Magn", "Marcell", "Noct", "Octav", "Prax", "Sever", "Sext", "Tarquin", "Tull", "Valer", "Vesper", "Vict", "Vitell", "Cassian", "Ostor", ] endings = ["ia", "ium", "ara", "ona", "ica", "ensis"] planets = ["Castra {name}", "Fort {name}", "{name} Hold", "The {name} Seat"] stars = ["Prime", "Secunda", "Tertia"] clouds = ["Shoal", "Drift", "Scatter", "Reef", "Haze", "Spill"] wrecks = ["Graveyard", "Boneyard", "Wreck Field", "Breakers"] # The planet's card ({system}: the system's name), and the gate you arrive # by ({planet}: the planet's). It leads nowhere until the planet is taken. planet_description = "The Empire's seat in {system}. Its garrison answers to a capital so far away that its orders arrive as history." gate = "The {system} Gate" gate_description = "Where you came in. It will open the way home for whoever holds {planet}." # What the holder keeps in a system it holds (holder.rs; docs/warp-gate.md # 'Inside'). Starbases: one in the bottom tier at least `from_gate` from the # gate you arrive by, one in the top tier within `near_planet` of the # planet, any more in the tiers between. Each is a structures.toml kind the # holder keeps, garrisoned by `ships` of its band at the starbase's own tier. [holdings.starbases] structure = "imperial_starbase" name = "{star} Watch" # One in the bottom tier away from the gate, one near the planet, and one # inside the system's richest asteroid cloud (Rheisen, 2026-10-16): the best # asteroids close by are the holder's until you take the starbase off it. count = [3, 3] in_clouds = 1 cloud_clearance = 300.0 band = "{holder}_line_t{tier}" ships = 5 # Distances a third shorter with the rings (Rheisen, 2026-10-17). clearance = 1700.0 from_gate = 3300.0 near_planet = 10000.0 # Roamers: a few of the holder's bands out in open space, each at the tier # where it starts and any level of it, wandering from point to point. Once # sunk they don't come back. [holdings.roamers] band = "{holder}_patrol_t{tier}" count = [3, 5] ships = [3, 5] radius = 1400.0 clearance = 1700.0