Unity.SpaceGod

The real solar system and Alpha Centauri in Unity 6, on live orbital mechanics, with an economy and a war you can watch or join at the helm of any ship, at playable or true scale.

Unity 6000.4 URP 17 C# 9 Tests 1214 passing Platform Windows Status prototype

The inner solar system at gameplay scale, with orbit trails, planet labels and faction-coloured ship icons

A ground-up rebuild of ExperimentSolarSystem (Babylon.js). Nothing here is a saved position: every planet and moon is propagated from orbital elements, and every ship flies a planned trajectory its drive suits: a torch's flip-and-burn, or a slow boat's transfer orbit under the Sun's gravity.

Why

  • Real orbital mechanics. Planets come from JPL's Keplerian elements (Standish, 1800-2050), solved with Kepler's equation for the current date. Open it today and the planets are where they really are; Venus, for example, is near inferior conjunction in October 2026.
  • Homeworld 3 navigation. Free swim with WASD and mouselook, then select something and press F: the camera flies to it, orbits it, and rides along as it moves. Any movement key drops you straight back into free swim from where you are.
  • Gameplay and realistic scale, live. Press G and everything eases between a compressed, playable layout and true proportions (1 unit = 1,000 km) over about 2.5 seconds. Whatever you are looking at stays framed.
  • Billboards when things get small. Anything under a few pixels, ships and planets alike, turns into a class-shaped icon in its faction colour, so you can always see where everything is, even at true scale where Earth is a speck. A ship shorter on screen than the swap point (5 px by default, Settings > LOD & render budget) drops its 3D model for its icon with its name beside it (all ships, warships only, or none; a name that would overlap another is left off), and clicking the icon or the name opens its card: status, hull and shields, armament by weapon kind with any shot away, crew, orders or cargo, and its record. A card too long for the screen scrolls.
  • A render budget at universe scale. Everything drawn degrades by its size on screen through one scheme (Core/RenderLod.cs): a full model, then a simplified one (a ship or structure under 48 px draws its hull alone, without turrets, damage, glows, shields or exhaust), then its icon (ships, worlds) or a glow impostor (fighters, pod beacons), and nothing at all below a pixel for anything without an icon (fighters, pods, wrecks, structures, docking rings, gates, defence platforms). Far-off ships of one side whose icons crowd closer than 14 px fold into one mark with a count (×12), led by the biggest hull, so a fleet or the traffic round a port is drawn once; the selected, hovered, followed or flown ship always keeps its own icon, and clicking a mark picks the ship that leads it. Another star system is one mark in the sky that says how many ships it holds. The simplify, cull and merge points are settings under LOD & render budget, and a new kind of renderable thing joins by registering a LodClass.
  • A living system. Twenty-one settlements run a supply-and-demand economy that merchants trade on by themselves; three navies and a pirate band fight real battles with lasers, missiles and carrier fighters, losing ships and ports; and traffic between planetary systems rides X3-style hyperlanes. You watch it happen.
  • Take the helm when you want to. Press P on any ship to fly it yourself: steer with the mouse, fire its forward guns, cruise across open space, trade crates and fill its tanks at a port, answer a pirate's demand, latch on to a derelict or a wreck and pick it over, turn outlaw and run from the patrols, or fly through a jump gate to another star.

Design principles

What the game is for, and where it is going, is in docs/VISION.md: a fully alive, galaxy-spanning simulation that is at once a strategy, dogfighting, capital-ship broadside, trading and diplomacy game, which you can step into and steer anywhere or leave to play out on its own.

Every change is held to these. Where the game falls short of one today, new work moves toward it and never further away.

  1. Expandable and extensible first. New mechanics, ship classes, factions, star systems and polity behaviours plug in through clear extension points and data: a new spec, table entry or registered handler, not edits threaded through the core loops of Fleet, War or UnitySpaceApp. If adding the second of something means touching the code that runs the first, add the extension point first.
  2. The universe is fully flyable. Given long enough, a pilot can fly from one end of the galaxy to the other in continuous space, the way I-War 2 lets you point at a place, engage and eventually arrive. Jump gates and hyperlanes are shortcuts that carry most traffic, never the only way, and capital ships and deep-space explorers can cross between stars under their own power. Capital ships and deep-space explorers already cross open space under their own cruise drives, carriers and capital ships with their fighters and small craft docked aboard, with the space between the stars simulated and every place held as a galactic sector plus an offset (see Continuous interstellar flight below), and at the helm a capital ship or explorer flown out beyond its system's outer rim is pointed at another star, spooled and engaged under its own FTL drive (see FTL drive under Piloting below). Canon: no jump is possible inside a solar system's gravity wells, by drive or anything else; a ship must get beyond the outer rim to jump, as the jump gates stand at the edge, and nothing jumps to somewhere in its own system; a jump gate at the helm and the STAR SYSTEMS camera trip are still an instant hop and a camera glide, stand-ins to be replaced. Build nothing that assumes a ship can only leave a system by a gate, or that space between systems is empty or unsimulated. Coordinates must hold their precision at galactic distances.
  3. Render only what can be seen. In a 3D world the size of the universe, a full-detail model for something too far or too small to see is waste. Everything degrades by apparent size: full model, simpler model, icon or impostor, then one marker for a fleet or a system, and nothing at all below a pixel. The floating origin, the billboard icons and the render budget (RenderLod: full, simplified, icon or impostor, folded marks, culled) are this scheme; new renderable things register a LodClass and join it instead of always drawing in full.
  4. No loading screens. Systems, ships and assets stream in and out in the background without stalling a frame. The only cover allowed is visual trickery at a jump gate (a transit effect long enough to finish loading what lies on the far side); arriving anywhere by plain flight never pauses to load.
  5. Reachable and adjustable in game. As much as possible can be seen and changed from the in-game settings menu: graphics and render quality, controls, simulation speed and scale, difficulty, and the tuning of the simulation itself. A value only a developer can change by editing code is a missed setting. New settings register in one place so the menu picks them up without being edited by hand, and each is remembered per profile like the display settings are today.
  6. Every ship has a real presence in the world. No ship exists only as a number inside a simulation. Every hull a system counts is a Ship in its fleet: it is somewhere, it flies its trips (its load visible on it, drawn at its level of detail), raiders can only take it where it actually is, and the player can take its helm. A system that needs ships (a works' tugs, a convoy, a colony voyage, a carrier's wings) raises real hulls and orders them about, never a count and a timer. The belt works' ore tugs are real hulls (MiningOperation.Tugs, U.SPC-T498); the capture tugs, raw-material convoys, colony ships, navy supply convoys and carrier wings still to convert are U.SPC-T522 to U.SPC-T526.

Gameplay vs realistic

The same moment, focused on Earth, before and after pressing G. At gameplay scale the Sun, Venus and the Moon crowd the view. At realistic scale they drop back to their true distances and sizes, while Earth stays put.

Gameplay Realistic
Earth focused at gameplay scale, with the Sun, Moon and Venus large nearby The same view at realistic scale: the Sun is a distant point and the Moon and ships are icons

The inner solar system at realistic scale: true orbit spacing with planets reduced to icons

Features

Simulation

  • Ephemeris. The Sun, 8 planets, Ceres, Pluto, Eris and 14 moons. Earth is offset from the Earth-Moon barycentre by the Moon. The Moon has real nodal regression and apsidal precession. The other moons use JPL's satellite mean elements in their Laplace planes, fitted to JPL Horizons, so each sits within half a degree of its true place on its orbit across 2000-2050 (Phobos and Miranda within 2). Uranus's moons roll with it and Triton goes backwards.
  • Rotation and orientation. Real IAU poles (RA/Dec converted to the ecliptic) and sidereal rotation periods, with retrograde rotators handled.
  • Scale model. A radial mapping about each parent that sends every surface to its displayed surface at any blend, so orbits keep their true shape and direction in both modes and nothing in low orbit ends up inside a planet. Intermediate blends interpolate in log space.
  • Fleet. Five factions in Sol, with yards building the merchant hulls trading companies order (no more than 170 traders in all) plus warships, and battles destroying them. Ships park in circular orbits at the real Keplerian rate for the body's GM. They depart when their orbit faces the target, then fly a constant-thrust brachistochrone (accelerate, flip at the midpoint, brake), plus a steady push that takes them from their parking orbit's velocity to the destination's, so they leave and arrive moving with the world. A hop within one planet's system (Earth to the Moon, Io to Europa) is flown in that planet's frame. Each transit is planned once, as an intercept against where the destination will be on arrival, dog-legs around the Sun or planet at the centre of its frame, and is checked against running into the bodies at either end (and steered wide of the planet a moon orbits). Between planetary systems ships take the hyperlanes instead (see below).
  • Drive-appropriate trajectories. Torches (warships, couriers, breachers, fighters, 0.25 g and up) keep the flip-and-burn and pay a gravity correction for holding their straight line through the wells at either end and the frame's own pull, integrated along the path. Low-thrust haulers (freighters and ore haulers) weigh it against a transfer orbit: a Lambert conic under the frame's gravity (universal variables, either way round), patched onto an escape hyperbola that leaves from the ship's own spot in its parking orbit and a capture hyperbola that circularises it in its new one, handing over at each world's sphere of influence (Laplace's a·(m/M)^0.4), with the small trims at the handoffs counted in. The planner prices every option at the hull's time value (its crew's days, money tied up in its cargo, four times as much for contracted supplies) plus its propellant, so cheap freight falls across slowly on a few km/s while urgent cargo pays hundreds of km/s to be there in days; a slow boat with nothing pressing searches the coming synodic period for its launch window and waits in port for it (Earth to Mars about every 780 days, Mars some 44° ahead), and may fly straight across on one rather than pay the lanes' tolls. Coasting, its drive is dark: only the escape and capture burns light it.
  • Lagrange points (Core/Lagrange.cs). Every body pair has its five: L1, L2 and L3 on the line through the pair at the restricted three-body problem's distances for its mass ratio, L4 and L5 at the equilateral points 60° ahead and behind, all moving with the pair (a planet's points about the Sun use it and its moons together, as JPL does). Checked against JPL Horizons' own Lagrange-point ephemerides: Sun-Earth L1 and L2 sit 1.5 million km from Earth, Earth-Moon L1 at 84.9% of the way to the Moon and L2 at 116.8%.
  • Jupiter's Trojans. Hektor and Eurybates in the Greek camp 60° ahead of Jupiter and Patroclus in the Trojan camp 60° behind, as full bodies on their JPL Small-Body Database orbits, checked against Horizons. The Belt Consortium mines the Greek camp (Skamandrios Diggings on Hektor, Queta Camp on Eurybates, reached by lanes from Jupiter) and the Black Banner hides Menoetius Hold on Patroclus; a fight there before it is found is a skirmish "in the Trojans".
  • Sim clock. Real time up to 1 year per second, starting at the current UTC date.

Rendering

  • Floating origin. The Unity camera never leaves the world origin. Positions are kept in doubles and every renderer is placed at scene position minus camera position, so a 600 m freighter renders cleanly 2.4 million km from Earth. Near and far planes adapt to the nearest surface.
  • Custom shaders (URP and HDRP) lit by the Sun's camera-relative position rather than a range-limited light: day/night terminator, atmosphere rims, procedural surfaces for bodies with no honest colour map, a granulating Sun with corona, Saturn's rings (C, B, Cassini Division, A, Encke Gap) shadowed by the planet, engine plumes, and a starfield with the Milky Way along the real galactic plane.
  • A render-pipeline layer (Runtime/Rendering/Pipeline, Core/Rendering/RenderPipelineProfiles.cs). Game code never assumes URP: it asks RenderBackend.Active for a shader, a camera set up for its role, a preview light, the star lighting the shaders read, a post-process look and the renderer features, and the backend registered for the running pipeline asset answers. URP is the first backend and the only code that references URP (its own assembly, Unity.SpaceGod.Rendering.Urp); the shaders pull in a pipeline's library only through PipelineCore.hlsl and use the transforms URP and HDRP share. Another pipeline is one profile and one registered backend.
  • HDRP, the photoreal path (Runtime/Rendering/Pipeline/Hdrp, Settings > Render pipeline). URP stays the default and the lighter choice; HDRP is the second backend (its own assembly, Unity.SpaceGod.Rendering.Hdrp, the only code referencing HDRP) and is picked in the menu, taking effect the next time the game starts. Unity builds a player for one pipeline only, so the build makes two, the URP player and the HDRP one in its HDRP folder, and a player started on the other pipeline's choice restarts into that player before the first scene loads (-pipeline urp|hdrp picks one on the command line; tools/deploy.ps1 -SkipHdrp builds URP alone, and HDRP then stays unavailable). The editor holds both and runs HDRP from a quality level of its own. A GPU without compute shaders stays on URP. Every hand-written shader is dual-pipeline: one file with a URP SubShader and an HDRP one (ForwardOnly), both including PipelineCore.hlsl and the shader's one pass in Resources/Shaders/Passes/. Under HDRP the shaders' colours become light metered for the star (EV100 15, so at that exposure they look as on URP), the star's face glares above a lit surface's white, and the image is tonemapped (ACES). Near a planet with air HDRP draws a physically based sky for it (its radius, the air's thickness and its red, green and blue opacity from the planet's own atmosphere colour and strength, Core/Rendering/Photoreal.cs), with volumetric light inside the air, lit by a directional light that follows the star; exposure is fixed for sunlight or adapts like an eye, with compensation; ray-traced shadows and reflections switch on where the GPU and DirectX 12 support them. The game's shaders light themselves, so ray tracing affects only what HDRP itself lights; hulls and planets do not sample it yet. Each is a setting in Settings > Render pipeline, and URP ignores them.
  • Ships. Procedurally kit-bashed carriers (flight deck, island, hangar glow), battleships (turrets, superstructure), cruisers and destroyers in faction livery. Warship guns, launchers, point defence, shield emitters, sensor masts and hangar bays are separate parts bolted on at the hardpoints the combat model uses. Fighters are their own small twin-gun hull. Ore haulers and couriers use Kenney Space Kit models; a bulk freighter is a procedural truss whose clamped pods show its load. A ship's nose stays prograde through the whole transit, braking half included, and every hull trails engine embers while it burns.
  • One-pixel orbit trails that fade behind each body. Moon orbits fade in as you approach their planet.
  • No loading screens. Ship models, planet maps and hull textures stream in the background (Core/Streaming.cs, Runtime/Rendering/AssetStreamer.cs). A system is entered with no ship models built; each is built when it is big enough on screen to need one, or about to be at the view's present speed and heading (5 s look-ahead, with what lies ahead of the view counting more than what lies behind), a few a frame within a loading budget, and let go of again once it dwindles out of sight. It shows as its icon until then. A planet shows in its own colour until its map arrives. The systems beyond any gate the view is closing on are loaded ahead of time. A jump gate's tunnel holds at its height while the far side is still loading (up to a cap) and then folds shut into the far gate's flare. Flying through a gate at the helm gets the same cover as a glow and a fold. Arriving anywhere by plain flight never waits. The budget, look-ahead and longest tunnel hold are in Settings > Streaming.

Real surfaces weather and asteroids

  • Real maps on 19 worlds. The Moon (LRO LROC colour), Mercury (MESSENGER), Mars (Viking), the four Galilean moons (Galileo and Voyager), Titan, Enceladus, Phobos, Deimos, Ceres (Dawn), Pluto and Charon (New Horizons), Triton, Miranda, Titania and Oberon (Voyager), with relief shading from real elevation data on the Moon (LOLA), Mars (MOLA) and Mercury (MESSENGER DEM). Every map is turned by its IAU prime meridian, or faces its planet for synchronous moons, so the Moon shows Earth its real near side and Pluto keeps its 0° meridian on Charon. Gaps the spacecraft never imaged are a flat neutral grey, and every caveat (Io's muted false colour, Triton's ultraviolet-based colour reduced to brightness, Titan's haze) is listed in SOURCES.md.
  • Gas giants that move with their real winds. Each latitude of Jupiter, Saturn, Uranus and Neptune drifts at its measured zonal wind speed (Cassini, Voyager and Hubble profiles; Jupiter's 23.7°N jet runs 165 m/s, about 13° of longitude a day) through a looping flow map with advected turbulence, on the simulation clock. Jupiter's Great Red Spot sits at its current System III longitude (BAA and JUPOS measurements, drifting 0.31° a day) and turns counter-clockwise, an anticyclone, about once in 6 days. The swirl fades out at time warps where it would strobe.
  • Titan and Venus as eyes see them. Titan is an orange haze ball with Cassini's 938 nm surface map faint beneath; Venus is its nearly featureless cloud deck, super-rotating in 4 days.
  • The asteroid belt, fully populated. 111,267 real asteroids from the JPL Small-Body Database (every numbered main-belt asteroid brighter than H 15.5, and every Jupiter Trojan brighter than H 15), each propagated on its own Kepler orbit on the GPU in one draw call, mapped through the same gameplay/realistic scale as the planets. The Kirkwood gaps and the two Trojan clouds come straight from the data. Vesta, Pallas, Hygiea, Juno, Psyche, Interamnia and the Trojan Achilles are labelled; the Trojans Hektor, Patroclus and Eurybates are full bodies.
The Moon (LROC colour, LOLA relief) Jupiter and the Great Red Spot Io
The Moon's far side at a low sun angle, with LOLA relief Jupiter with the Great Red Spot at its current longitude Io from the Galileo colour mosaic, saturation reduced to approximate natural colour
Mars (Viking colour, MOLA relief) The asteroid belt at gameplay scale The asteroid belt at true scale
Mars with MOLA relief shading 111,000 real asteroids around the inner system at gameplay scale The same belt at realistic scale

The living system

The orbits are real; everything below is fiction, placed on worlds that plausibly hold what they produce.

  • Economy. Sixteen goods: food, water and medical supplies; helium-3; nickel-iron, copper, zinc, platinum-group metals, rare earths and titanium; hydrocarbons and nitrogen; refined alloys, electronics, machinery and munitions. Eighteen settlements (Earth's orbital industry, Tycho City, Ares Prime, Ceres Hub, Ganymede Union, Kraken Port on Titan and so on) mine what their world has (ice moons sell water, Titan hydrocarbons, Io copper and zinc from its sulphide flows), turn it into goods through production chains (smelters, electronics fabs, machine works, pharmaceutical labs, munitions plants, shipyards), feed their people and price every good from their stock against what they use. Facilities grow when what they make sells dear and shrink when it is glutted.
  • People and labour. Each person eats, drinks and breathes by NASA's planning figures: 1.76 kg of food a day, and the water a closed loop loses (98% recovered on a station, as on the ISS since 2023, less in a colony with showers), plus the water split for oxygen and the nitrogen that replaces leaked air. Populations grow when fed, shrink when not, and migrate toward food, water and better expected wages, never across a war front. Every facility needs a crew, life support first; short-handed it makes less, and under a quarter of its crew it stalls. Wages are taxed into the owner's treasury alongside port taxes, and the treasury pays for new hulls, refits, defence platforms and every warship's daily upkeep, so a starving, emptying economy really does weaken its navy. Figures and assumptions are in Economy/SOURCES.md.
  • Trade. Freighters, ore haulers and couriers each pick the cargo and destination that earn the most per day of travel, counting deliveries already on the way, so goods flow from surplus to shortage without a script. Every run is priced by what it really costs: the propellant its burns throw out with that cargo aboard (at the local price), a toll for every hyperlane it rides (paid to whoever keeps that system's ramps), and the crew's days. A run the tanks cannot cover, with a reserve, is left out; a ship running low with nothing to carry makes for the nearest port that sells propellant. Owners post supply contracts for essentials their outposts are short of. Profits go to the ship's faction, ports tax the trade, and traders steer clear of where the fighting has been.
  • Propellant. Every hull has a fusion drive with its own exhaust velocity (2,200 km/s for an ore hauler to 4,500 for a courier) and a dry mass and tanks of its own, and the rocket equation sets what each manoeuvre costs: a full hold cuts a freighter's delta-v by nearly two thirds. Civilian ships pay for every transit from their tanks (the flip-and-burn plus matching velocity at each end and its gravity correction, or a transfer orbit's escape, capture and trim burns; hyperlane rides cost no propellant) and fill up in port with water or hydrocarbons, whichever is cheaper there, and the helium-3 that burns them. Those sales are propellant demand the markets stock for. A ship that cannot cover its next trip waits in port for propellant; one that runs dry in flight (now and then a holed tank vents most of what it carries) drifts where its tanks gave out and calls for a tanker, which fills it in a couple of days at a premium, and its call is a distress adventure the player can answer by pumping some of their own reaction mass across.
  • War. The Sol Federation and the Outer Reach Compact are at war (it cools to ceasefires and flares up again); the Belt Consortium trades with both and hunts pirates; the Black Banner raids busy ports from Blackwater on Deimos and from three hidden bases on real belt asteroids (Hollow Iron on Psyche, Lantern Rock on Lutetia, Dactyl's Rest on Ida). A hidden haven is off the map until a warship's scanners pass within 2 million km of it (a merchant's within 1 million), a navy's sensors hold raiders parked there or burning in to it, a navy follows beaten raiders home, or captured raiders give it away. A navy that finds one sends a strong group to break its two gun platforms and then board it (seizing its stolen goods) or level it; a pilot who has broken one can do the same (1 board, 2 destroy). A fallen haven's raiders lie low and no new bands sail from it until the pirates rebuild it, 180 days on. Fleet groups take orders (patrol, attack a weak enemy port, defend one under attack, besiege, refit at a yard). A battle starts wherever hostile forces meet: groups, merchants or a settlement's orbital defence platforms. A port with no platforms left, held by a besieging group for 4 to 20 days, changes hands; refits and new hulls are paid for in alloys, electronics and munitions bought from the yard's market.
  • Capital ship combat. Battles run a tactical simulation in a local space tens of km across: ships manoeuvre to their weapons' range, every hardpoint picks its own target, lasers, railguns and missiles hit particular subsystems (guns first, then shields, engines and the bridge; a lost reactor takes the ship with it; a warship's bridge is buried at the centre of its hull with no viewports, so fire reaches it only once the hull is holed deep, Core/Combat/BuriedBridges.cs), point defence shoots missiles and fighters down, and damaged ships break off and run. Shields come from emitters on the hull, not facing arcs: each emitter's field covers the patch of hull around it, a shot drains the field of the patch it strikes in 3D, and a patch shot away (or whose emitter is destroyed) is holed while the rest of the hull stays covered, so gunners go for the weak spot, and a capital rolls and turns its hull to keep its weak patches out of the heaviest fire, trading that against keeping its guns bearing (AI captains by doctrine; at the helm the HUD names the weak patches and the one under fire, and Shift+Delete orders the helm assist to roll them away) (docs/SHIP_ROSTER.md, Core/Combat/ShieldEmitters.cs, Core/Combat/WeakPatches.cs). Every weapon aims within a fire cone, not a facing arc: a direction on the hull (its mount's normal) and a half-angle it traverses within, so a gun bears on anything inside it in 3D, above or below the hull as well as to the side; turrets have wide cones, spinal mounts and fixed tubes narrow ones along the keel (docs/SHIP_ROSTER.md, Core/Combat/FireCones.cs). Turrets traverse onto their targets, shot-away hardpoints leave burning scars, breaches open as the hull falls, and a destroyed ship breaks into bow and stern that tumble apart and burn out.
  • Weapons that travel. Railgun and gun rounds fly a lead-compensated straight line and land only when they arrive; a miss keeps flying and fades, and the miss rate depends on the target's size. Beams sweep onto their target and leave a scorch, with muzzle flash and recoil. Destroyers carry a fixed spinal railgun.
  • Wrecks. A ship destroyed in battle leaves a slowly tumbling hull inside a drifting debris field where it died, at a body or beside a hyperlane, carrying its cargo as salvage until it breaks up and is cleared.
  • Surrender. An outgunned, battered hull can strike its colours instead of fighting to the last: it breaks off, powers down its weapons and hails. How soon depends on its damage, the odds and its faction's temperament (pirates break first, navy crews last). Its captor ransoms the cargo, takes the ship through the boarding path, or lets it go.
  • Outfitting. Every hull is built from two kinds of part (docs/SHIP_ROSTER.md): hardpoints on its surface, each with a place, a fire cone, a type and a size, MechWarrior style (a Ballistic, Missile or Energy mount takes only parts of its own type no bigger than itself, and only a mount bearing on the bow, or a fixed tube, takes a spinal railgun, torpedo tube or lance; shield and engine mounts take generators and drives), and facilities inside its body, each taking a share of the hull's limited internal space: the bridge, engineering, quarters, hangar and holds it is designed with, and one to six sections of free space by class for what a yard fits. A shipyard (or a raider haven) fits lasers, heavy lasers, railguns, missile launchers and point defence, hardened shield generators (half again a stock one's share of shield and regen) and torch drives (30% more thrust) on the hardpoints, and armour plate (more armour and hull points, and mass to push), cargo racks (more hold), scanner suites (half the hull's sensor range again and finer resolution, and a million km more reach for hidden havens) and a brig into the free space, as far as it has room; a hull too small for a facility cannot take it at all. Each module is bought from that yard's own market, its alloys, electronics, machinery and munitions at the yard's prices, plus a quarter again for labour, less half the old part's materials sold back (nothing for one shot away); a yard short of a material cannot fit what needs it. The loadout rebuilds the hull's combat spec, and every added tonne costs acceleration and delta-v. Navies and raiders upgrade their own warships while they refit at their yards, out of a flush treasury and the yard's surplus. A brig takes prisoners off a prize, handed over in port for 50,000 credits a head for raiders (20,000 ransom for anyone else).
  • Bulk freighters (Core/Combat/BulkFreighters.cs). A freighter is a skeletal truss with its engine astern and standard modules clamped along it, built in space and never landing: at a ringed world it trades from orbit instead of going down through the rings. Its hold is its cargo pods (eight on the stock design, 2,500 t each, the 20,000 t its holds carried before, and a row of the grid hold each) and its tanks are its two fuel spheres (3,000 t of reaction mass each); both are facilities, so a yard clamps on more pods for cargo or more spheres for range as far as its free space goes, or takes them off when what is aboard still fits. It carries no armour and no weapons, not even the point defence and mine layer it once had, and no yard will fit it plate or racks: every kilogram goes to cargo, and its guns are its escorts' (the fighter wings merchants hire in port, a navy's convoy escorts). It rides the hyperlanes at half a ship's toll for its mass (Settings > Economy), and off them its weak drive (0.06 g between worlds, half its old thrust in a fight, a cruise drive slow to spool) takes a long time to speed up and slow down. Up close its model is the truss with a container in a clamp for every share of its load: a bare spine empty, every clamp filled full.
  • Construction. Everything that can be built in space is a hull frame in one catalogue (HullFrames): every ship class's designs, from fighters to carriers, the defence platform and an orbital station, and weapons and sensor satellites. A frame's sockets are its real hardpoints, each with its place on the hull, its fire cone, its size (small, medium, large) and a stable socket name, so a model library can set a turret, launcher or tube exactly where the battle fires from. A ConstructionPlan fits parts into the sockets and gives the hull's spec, bill of materials and price, and becomes a new ship's loadout or a station's or satellite's combat state. Battleships carry two bow torpedo tubes and cruisers one: a fixed launcher with six heavy torpedoes (900 damage, slow enough for point defence to work on), fittable in any torpedo socket or bow-bearing missile mount of medium size or more. New frames plug in with HullFrames.Register.
  • Escape pods and crews. Every crewed hull carries escape pods, one for every 20 people aboard (17 on a destroyer, over 200 on a carrier). As a hull goes down in battle, or is scuttled or cast adrift, whoever is still aboard makes for them: about half to four fifths when it is shot apart, a fifth to under half when the reactor goes, nearly everyone when the crew are put off in good order. The pods drift away from the hull and broadcast for ten days of air. Whoever finds them decides what happens next. Their own side or a friendly ship (patrols search, merchants come across them) brings the crew home and is paid by their owners. Pirates haul them in as hostages and ransom them back for 60,000 cr a head; hostages nobody can pay for are pressed into pirate crews, and hostages held at a haven go free if it falls. An enemy navy keeps them as prisoners of war until the fighting stops. Raiders picked up by a navy may give their haven away. If nobody comes in time, everyone aboard is lost. Crews of hulls that are kept or sold go the same way as hostages or prisoners. Every death wears down the faction's crew morale (crews strike their colours sooner) and is gone for good from its manpower: a reserve of trained spacers, recruited from its settlements' people, that new hulls and refits draw their crews and marines from. A navy bleeding crews builds fewer ships.
  • Escort fighters. Besides carrier squadrons, each of the six navy patrol groups flies two named fighters as escorts.
  • Patrol wings and commanded combat (Core/Combat/PatrolWings.cs). Besides its battle groups, every navy keeps standing patrol wings flying a beat of up to three of its ports, one wing plus one for every two ports it holds in a system (none for a navy with a single port, which its battle group holds), up to four, spread so that between them they cover every port: a light wing of three fighters, a heavy-fighter wing (a gunship leading two light fighters) and, for the bigger navies, a destroyer wing (a destroyer leading a heavy fighter and two light ones), about thirty hulls in Sol alone. A wing defends a port on its beat when an enemy turns up there, hunts raiders seen working one and puts in at a yard to repair, but never strikes at an enemy port, joins a battle group, sails through a gate on a campaign or counts against the yards' warship cap. Combat is commanded, not picked with whatever hostile is in reach: a group opens a fight, or turns to run the player down, only where its orders put it (at its own navy's ports, on its patrol beat, or at its order's objective: the port it attacks, defends, besieges, assaults or hunts at, the ground it raids, the gate it watches). Two enemy groups passing on open ground, each bound elsewhere, let each other go; a group set upon still fights back, and platforms still open on any hostile in range.
  • Supply convoys and local traffic (Core/Combat/PatrolWings.cs, Core/Economy/LocalTraffic.cs). Beside its wings, every navy runs supply convoys, one for every two ports it holds in a system, up to three: one of its own freighters carrying naval stores round a run of up to four of its ports under two fighters (or a gunship and a fighter). A convoy flies as a wing does but takes only two orders, on round its run or to a yard when hurt; it never turns aside to defend or hunt. Wings and convoys together put over sixty navy hulls on commanded routes in Sol. And every inhabited port has its ordinary traffic, so a system reads as lived-in rather than as a combat arena: orbital buses (40 seats) on a line round the other ports of its planet, calling stop by stop, taxis (4 seats) taking fares among them, and its people's own single-seat skiffs, four-seat runabouts and six-seat tourers flying about the neighbourhood and out to sightsee, in proportion to its people (about three dozen craft in Sol, at most sixty a system). All of it is local: it keeps to the moons and stations of its own planet, so never rides a hyperlane or sails through a gate, carries no trade, runs on its operators' fuel rather than the markets', and is no combatant: a fight never sweeps it in, it turns aside from one breaking out ahead of it, and it will not fly to a world where one is on.
  • Raider doctrine and holding the gates (Core/Combat/RaidDoctrine.cs). A pirate band sizes a mark up before it springs, at a gate, on a lane or at a port: it takes on escorts and guns up to a share of its own strength that grows with what the mark is worth (an empty hauler has to be all but unguarded, a hold of electronics is worth tangling with a real escort for), and it leaves a civilian hull (a yacht, survey ship or prospector, or any hull with passengers or colonists aboard) alone, since robbing one brings the navies down four times harder, unless the jobs it flies on pay well or a passenger who paid a fortune for the fare is aboard to ransom. It disables and loots rather than destroys: its gunners go for a merchant's shields and engines, never its reactor; once the hull lies dead in space (or is knocked out by a lane pulse, or stripped of its screens while outgunned) they hold their fire and demand the cargo, the crew jettison it, drones collect it and the hull goes free, and with the hold in hand and nothing left worth taking the band withdraws rather than trade fire with the escort. A hull destroyed outright puts far more on the clan's head than a clean robbery (one and a half times the hull and its worth, four times that for a civilian). On the other side, a navy's command sends a battle group strong enough to clear them to hold one of its own jump gates that raiders are known to be lying off: it takes station on the gate's approach and fights them there.
  • Gate pickets (Core/Combat/GatePickets.cs). Every state with a navy keeps a gate picket at the exit of each jump gate it holds: a small, sensor-heavy hull (the Gate picket class: a slim hull under a sensor mast and dish, a light gun, good shields, fourteen crew) whose search suite sees six times as far as a warship's, posted just inside the gate where everything coming out passes it. Its suite joins its navy's picture, so raiders lying dark off the gate are made out and a group is sent to clear them; and whatever hostile and armed comes through the gate, or drops out of FTL within four AU of a picket under its own drive, is reported at once: the intruders go straight into the navy's picture, the news carries the warning, and command sends a group strong enough (with the gate's forts beside it) to meet them at the gate while they are still there, before anything but defending its own ports. A gate without pickets is blind until the intruders reach a port. Raiders know it: a band lying off a gate goes for its pickets first, taking on half again the guns to silence one that it would for warships alone, and raider gunners shoot a picket before anything else in a fight. A picket flies as a patrol wing (never merged, sent away or counted against the warship cap), holds its post and never opens a fight, puts in at a yard when badly hurt, and when lost is replaced at its navy's expense after ten days; a gate that changes hands sends the old holder's pickets off to patrol its ports. Pickets per gate and the FTL watch are in Settings > AI; another class's base sensor suite registers in one place (SensorSuite.RegisterBase).
  • Corvettes and the law in a system (Core/Combat/Corvettes.cs). The corvette is system defence with no FTL drive, the weight a drive would take put into patrol: a short, stocky hull (smaller than a frigate, seventy crew) with saddle tanks as heavy as the hull itself for weeks on its beat, a patrol search suite that sees twice as far as a warship's, an impound hold, and a brawler's battery (a spinal light railgun, two laser turrets, a missile rack and point defence) behind a destroyer's plate. Every navy stations one for good at each of its ports in a system, the most populous first, up to three (a planet, moon or station), and it never leaves that system: no drive, no gate, no carriage on a carrier, never merged into a battle group, given an objective by its polity's command or counted as a warship. From its station it rides the hyper lanes of its home system on a beat of its port, one more of its navy's ports round the same planet and the navy's port at the far end of up to two lanes out of it, always coming back to its station between runs. It is the local law: as a navy patrol it hails and scans the player's ship in its navy's space, it defends the ports on its beat, and when its navy has seen pirates or a clan's smugglers at a port on its beat or anywhere round its home planet it goes to run them down, nearest first, and fights them there in the law's name. A corvette lost is replaced at its navy's expense after fifteen days, and one whose port changes hands is posted to another. The number per navy is in Settings > AI.
  • Fleet doctrine: gate fleets and jump strike groups (Core/Systems/FleetDoctrine.cs). Navies raise two kinds of force and use them differently. A gate fleet is large but has to come through the gates, so it is predictable and is met at the gate exits by the forts and pickets there. A jump strike group is a carrier, the capitals with FTL drives of their own and the escorts docked or clamped to the carrier (any group whose every hull can go through its jump, read from the carriage data, never a list of classes): smaller, but it crosses under its own drives and drops out on the flank of a system, as far round from the way it came (up to the side of the system) as takes it farthest from the gates and pickets held against it. Strategic command picks between them by objective: a gate fleet marches on the war's next goal through the gates as before; a strike group relieves one of its own systems the enemy is loose in (it breaks the enemy over its ports and puts its marines down to stiffen their garrisons), else opens a second front against a goal the gate fleet is not marching on (or, with no gate fleet out, jumps on the nearest goal itself) and takes it as an invasion does, else raids the nearest enemy system with a port it outguns, breaking their defences one after another, and jumps out for home when its time there is up. The player's own strike groups ordered to take or hold a place jump in the same way. Defenders keep their pickets at the gates and, against an enemy that fields strike groups, a reserve at home in every system they hold, as strong as the enemy's strongest strike group, that no campaign is sent if it would draw it below; the reserve meets a strike group at the ports it falls on. The galaxy map's COMMAND report counts each polity's gate fleets and strike groups. Whether strike groups go out, the reserve, their range and how long they stay are in Settings > AI.
  • The strategy layer (Core/Systems/StrategicCommand.cs, the galaxy map's COMMAND panel). Any polity with a navy can be commanded from the galaxy map: a report of what it holds (systems, ports, people, treasury, unrest), its navy (hulls, groups, strength, campaigns), its wars, marines, morale and losses, and every fleet group with what it is doing and what it was told to do. Three priorities steer it: a production focus (balanced, war industry, civil or extraction: the favoured industries grow on thinner margins and are kept up through a glut), a build plan (balanced fleet, battle line, carrier groups, screens, mobilise at half again the navy, or merchant marine with no new warships) and a research line (marine training raises marine quality, shipyards the navy kept, industry the growth of the favoured industries), researched from the polity's people at the pace set in Settings > Civilizations. Its groups take objectives, one squadron, every group in a system or the whole navy at once: take an enemy port or system (attack, besiege until it falls or storm a haven, then hold it), hold a place, blockade an enemy port (no ship docks, nothing is landed), escort a ship (your own hull when you are flying there) or explore every world of a system. The faction command layer carries them out ahead of its own plans, refitting first when a group is hurt; a group whose objective lies in another system is sent there through the open gates (or under its own drive), and a take in a system it is at war over goes as a campaign. Every polity runs as before until it is given a directive. Each new focus, plan or research line is one registration.
  • The diplomacy game (Core/Systems/Statecraft.cs, the galaxy map's DIPLOMACY panel, F12 to hail). Every state, the one you speak for among them, holds an opinion of every other (-100 to 100) that drifts toward what lies between them: wars, pacts, a common enemy, ground taken, a navy that could swallow it, an embargo. States sign non-aggression pacts (five years), trade pacts (both treasuries gain every day, embargoes lifted), alliances, tribute (a sum a month for two years) and vassalage (a share of the vassal's treasury every month, its navy in the overlord's wars, the overlord's in its defence). A pact that keeps the peace must be broken to go to war, and breaking one is noticed by everyone; an ally is called to arms when its friend is attacked (never for a war its friend started) and stands down at the peace; a vassal follows its overlord into every war and makes none of its own; tribute and the levy stir unrest in the payer's ports, and a payer that cannot pay defaults. The envoy screen puts peace, any pact, tribute offered or demanded and fealty offered or demanded to any state, with how they would take it read from the same weighing the AI answers by, plus a gift, breaking a pact and declaring war; hailing a ship at the helm (F12) gets its polity's answer and opens the envoy on it. The AI puts the same deals each month (peace when weary, alliances against a common enemy, non-aggression with a power that worries it, trade with a friend, tribute from a weak neighbour, a refused demand sometimes taken by force), and proposals to your state wait a month for your answer. Settings > Civilizations: AI diplomacy, diplomatic memory, trade pact income and the vassal levy. Each new pact or deal is one registration.
  • Fighters. Carriers launch their squadrons (interceptors, space superiority fighters and torpedo bombers, each a hull class of its own, then heavy fighters on a carrier with a fourth squadron) as they enter a battle, and recover them when the fighting is over. Each squadron flies attack runs on capital ships (approach from the side, dive in guns firing or torpedoes away, pass close, break off, swing round from a new side) or dogfights enemy fighters. Wingmen fly a loose vee: each pilot has their own wander, reaction lag and discipline, so formations breathe and stretch, and spread out on the run. Every carrier also flies a recon pair (Core/Combat/ElectronicWarfare.cs, U.SPC-T485): two recon / electronic warfare fighters (ShipClass.Recon, an interceptor's airframe with a pilot and an EW officer, berthed beside the squadrons) that scout out ahead to the enemy capital its bombers are going for (else the biggest in the fight) and hold off it at 6 km, outside its point defence, edging round it. From there they jam every enemy ship within 8 km, whose gunners and point defence then fire 30% less accurately (several jammers do not stack), and paint their mark for the bombers: bombers go for a painted capital first, and their torpedoes steer two and a half times as hard onto it and are drawn off by its decoys only one time in five, so a painted target is far easier for them to hit. A recon fighter knocked out by a pulse does none of it, and aboard its carrier the pair stretches the carrier's sensor reach by half. The ranges, the accuracy lost, the guidance and the decoy resistance are in Settings > Dogfighting. A lost carrier strands its wings (Core/Combat/StrandedWings.cs, U.SPC-T473): craft still out when their carrier is destroyed, taken, or leaves the field (runs, or jumps away) look for another friendly carrier with room in its hangars (it holds no more than its own squadrons) or a friendly station on the field (a defence platform or gate fort) and land there when the shooting stops; failing that, when the fight ends they put in at a friendly port at the world it was over, or are lost, their pilots ejecting into the pods.
  • Boarding. Every hull has an interior: a chain of compartments (bow, holds, quarters, batteries, midships, the bridge, engineering, the marines' barracks) with its crew and marines in them. Marines live and train in a marine habitat (Core/Combat/MarineHabitats.cs, U.SPC-T465), a facility of one section in the hull's internal space: a ship's marine complement is what its habitats quarter (each stock design keeps the marines it always had, in the habitats it is drawn with; a yard fits another, fifty berths a unit of hull scale, or strips one out for plate), only hulls big enough for one carry marines (fighters, small craft and satellites repel boarders with their crew alone), defenders muster from its barracks, and drilling there makes them better day by day, up to 30% better fully trained after about half a year, both repelling boarders and boarding (raw recruits who make up losses bring the drill down; tunables in Settings > Broadsides). A disabled ship (no engines, a lost bridge on a holed hull, or a hull nearly gone) can be boarded: a warship or raider lines up alongside, matches its drift, latches and sends its marines through the airlock; a ship with an assault bay (Core/Combat/AssaultBays.cs, U.SPC-T466: a facility of two sections a yard fits into a capital only beside a marine habitat, and every raider band's leader carries) fires a Breacher, a whole team of seventy marines in an armoured round, at high velocity at any hull whose shields are down to a quarter: it flies like a bullet with only a slight course correction (its own ballistic flight family), so a target that jinks hard is missed and the team lost, and a round that strikes drills in, stays stuck in the plating and lets its team out into the compartment it hit, the bay firing again only as fast as the habitats ready the next team; and mid-battle, warships fire the lighter drill-tipped boarding pods that bounce off shields but punch through bare plating and stick there, each with a squad of twelve aboard. Carriers keep two boarding shuttles in their hangars beside their squadrons (Core/Combat/BoardingShuttles.cs, U.SPC-T486): armoured, unarmed craft of their own class that carry a team of twenty-four from the carrier's barracks to a hull lying disabled or a station or gate fort whose guns are silenced, dock alongside, match its drift, latch on and let the team in through the airlock with no drill and no breach, so the prize is taken intact; a carrier sends them rather than closing to board with its own hull, a team goes to a hull already being boarded only while its defenders still outnumber the boarders, and a war fleet whose group carries shuttles takes a silenced jump gate in a day instead of two. The Breacher's and the shuttles' figures are in Settings > Broadsides. A breach vents its compartment and kills crew until the emergency bulkheads seal. The fight inside is resolved over time, compartment by compartment: marines rush to the breach, casualties trade on numbers, training (each faction's marine quality and the ship's own drill) and a defender's advantage, and the bridge and engineering are fortified for a last stand. A warship's bridge is buried at the centre of the hull and opens only off midships, so no breach or airlock lands boarders in it: they fight through to it. Holding both takes the ship. The player can take part (U.SPC-T468, docs/BOARDING.md): while piloting a hull that is being boarded, or one whose faction's marines are boarding another, B opens the boarding panel, which lists every compartment and who holds it, and gives that side standing orders over the compartments. Boarders can be sent for a chosen compartment (the barracks, to catch the marines before they muster) or told to dig in where they stand. Defenders can be mustered on a chosen compartment (the bridge, before the boarders reach it, or one to retake) or told to hold their posts. Every exchange of fire is still the weighted roll, and auto-resolve hands the side back to it, running exactly as before. Pirates keep warships they can crew, strip merchant holds and leave the hull adrift (or sell it to the breakers, or scuttle it); navies take serviceable prizes and scuttle pirates. The interior model keeps everything a future deck-by-deck boarding view needs.
  • Salvage and boarding derelicts. A hull the raiders cast adrift drifts where it was taken, with a fifth of its cargo they had no time for and its own stores, and sometimes crew who sealed themselves in or a few raiders still stripping it. Flying a ship, come alongside a derelict or a wreck and match velocity (within about a kilometre and 20 m/s) and press 1 to latch on. Raiders aboard hold the hull until your marines go through the airlock and fight them compartment by compartment, on the same interior model as any boarding; survivors are found once the hulk is clear. Then choose: salvage cargo crate by crate into the grid hold, strip a component (fitted in place of one of your own shot-away hardpoints of the same kind, or broken down into a crate), or claim the hull if it can still fly, with rescued survivors and hands from your ship as its prize crew.
  • Lane ambushes and lane interdictors (Core/Combat/LaneInterdictors.cs). A hyperlane's route is predictable, so raiders lie in wait just outside a busy one. The pulse comes from an interdiction field projector that disrupts the lane's magnetic field. The projector is heavy equipment, not a ship class (U.SPC-T507): a facility two sections deep (FacilityKinds.FieldProjector, the emitter and the reactor that feeds it) fitted into the internal space of any warship, capital or freighter hull big enough to carry it and its reactor load (8,000 t dry and up: a destroyer, a cruiser, a raider's converted freighter, never a frigate, corvette or anything smaller). A yard fits and strips it like any other fitting (F2), and its glowing ring shows amidships on whatever hull carries it; whatever hull carries one is the group's lane interdictor. When a ship passes, the group's interdictor pulses and throws every ship near that point out of the lane, knocking out their drives and shields for a minute or two, and the raiders close in. Every raider band sails with one, a destroyer escort fitted with the projector; a band that has lost (or stripped) its projector has nothing to pulse with and goes raiding instead. Navies fly one too: a lane picket wing (two destroyers, the second fitted with the projector, and two fighters), and any navy group with one aboard (the Lane security build plan fits a projector to a hull of each group it builds up, BuildPlan.GroupFittings), now and then lies in wait on the most troubled lane out of its system and pulls out raiders, enemies at war, and the player's hull when that navy has a price on it, while lawful traffic rides on; the picket's fight is the law's, so it is charged with nothing. The fight happens in open space beside the lane; survivors climb back in and carry on. Ambushed lanes look dangerous to route planners for a while, so traffic shifts. The projector's recharge and the navies' picket chance are in Settings > AI, and any hull is given a projector with LaneInterdictors.Fit. Fighters fly back and land on their carriers when the shooting stops, and carriers short of fighters (or groups short of marines) go home to refit.
  • Lane tenders and upkeep (Core/Systems/LaneUpkeep.cs). A hyperlane's accelerator rings have to be kept powered and aligned. Each lane wears 2% a day with nobody tending it, and every lane tender working it (riding it, or lying over the rings at either end) brings back 10% a day. Lane tenders are unarmed maintenance hulls with heavy shields and a crew of engineers. As a lane wears it rides slower, down to 40% of its pace, and less reliably: on a worn lane up to two rides in five stall part-way when the rings slip, wait beside the lane for a few hours, then pick up again. At a quarter of its condition the lane fails. Its ring gates go dark, nothing can join it, and route planners and the markets send traffic round by the rest of the network (a ride already bound for it takes another way at the ramp) or under its own drive, until tenders bring it back. Whoever keeps a lane's ramps keeps one tender on it, shuttling between its ends, and when one is lost the keeper's yards build a replacement before anything else. So tenders matter in peace and are a prime target in war. Raiders value one at 20 million credits and sink it rather than rob it, gunners on both sides go for it first, and a navy at war (or a raider band, half the time) goes up to five days out of its way to fall on an enemy tender and cut the lane. Every rate is in Settings > Simulation.
  • Economic shocks and the news (MarketShocks). Nothing is scripted: each shock comes from what the sim is doing and moves stock and prices through the ordinary markets, so traders reroute and prices jump where they should. Mines worked hard (and short of machinery for upkeep) have accidents that shut most of their extraction for a few weeks, and every ore seam holds a few years of output before it plays out and the mine is cut back (until prospectors find another). Hydroponic farms short of nitrogen catch blights that spoil food and cut harvests. Wages follow the cost of living slowly, and when prices run well ahead of them workers strike: industry stops, life support runs, and the strike ends with a raise. A navy at war whose ports run short of essentials or munitions brings in rationing. A besieging group holding the space over a port declares a blockade through diplomacy, and no ship docks there until it lifts; a navy that catches a neutral's traders running munitions (or electronics and alloys) to its enemy embargoes them, closing its ports to their ships until the embargo runs out or the war stops. All of it is reported as it happens, along with every price spike (a port's price at 2.5 times normal, with its cause, or a good dear across the whole system), battles, captures and surrenders. X opens the news feed, filtered to markets, war or the rest; click a report to select where it happened, and the market board lists what is shaking that port right now.
  • Law, crime and bounties (Core/Law). Each faction's law holds at its worlds and in the planetary systems whose hyperlane ramps it keeps, and on those lanes; a haven's rock out in the belt, and space nobody keeps, is lawless. Attacking a ship you are not at war with, piracy (any attack by raiders, or robbing or taking a lawful hull), smuggling, trespass and running from a scan are crimes, but only if someone's scanners saw them (a fight is seen by a merchant within 1 million km, a warship within 2 million and a station's traffic control within 3 million): a merchant whose crew all died out on an empty lane tells nobody, and a lawful ship that fights back has done nothing wrong. A crime on record raises the offender's notoriety (halving every 90 days), lowers their standing with that jurisdiction and with the victim's faction, and posts a bounty there (assault 50,000 cr, piracy 150,000), which stands for 180 days unless renewed. Every raider captain gets a record from what their band actually does, and the bounty board adds what is posted on them to the price on their head; a wanted captain killed or taken by those who posted the bounty has paid it. Flying a ship, lock a lawful ship (T) and hold fire on it to attack it: its group, its faction's ships in orbit there and its platforms over that world fight back. Navy patrols hail you in their own space for a 20-second cargo scan (hold position; stolen goods, which is everything a haven sells, are confiscated as smuggling), and if you are wanted, anywhere, they order you to heave to and pay the bounty within 30 seconds (1) or be interdicted. Standing sets what you pay (up to 10% less when trusted, up to 30% more when not), whether a port lets you dock at all (not below -25, nor with a bounty of 100,000 cr or more posted by its owner) and whether a faction offers you distress calls, escorts and bounties. Fines can be paid at any of a faction's ports, welcome or not.
  • Trading companies (Core/Economy/Companies.cs). The merchant fleet belongs to NPC corporations, each with a name, a home port, a livery (its hulls' paths and HUD entries are drawn in it) and a standing with every faction. Sol starts with seven (Kepler Freight Lines at Earth, Ares Haulage at Mars, Jovian Bulk Carriers at Ganymede, Vesta Ore and Haulage at Ceres, the Kraken Hydrocarbon Company at Titan, and two free-trader houses) and Alpha Centauri with three, holding the freighters, ore haulers and couriers already flying their flag. Every ten days a company books its hulls' trade profit (which their flag's treasury used to keep), pays their crews and upkeep and a tenth of its profit in tax to its flag, and learns from every run its ships complete (loaded where, sold where, for how much over how many days) which runs pay: it points its fleet at its six best, and its captains weigh those and its home port above others, a run it has lost money on below, and never trade at the ports of a faction whose standing with it has fallen below -0.5 (deliveries raise it; a war against its flag drags it down). When one more hull of a class is expected to pay its price back within five years from what the company's own hulls of that class earn (or, for a class it has never run, what everyone else's do), and it can pay the price and keep a quarter of it in hand, it orders one at its home yard or the nearest yard whose owner will build for it; the yard lays it down from the company's money and launches it in the company's name (a navy at war worn below its peacetime strength takes its own yards' slips first). So the merchant fleet grows while trade pays and stops when it does not. A company in debt cancels any order and, deep in debt, sells a hull a review (to the richest rival under friendly colours that can use it, else to the breakers); a healthy rival flying friendly colours with the cash may buy it out (taking its hulls, routes and debts, and paying its shareholders); one with no hulls left, or in debt for 180 days, goes bankrupt. When the companies' hulls earn well, investors under a busy port's flag found a new company there (up to eight in Sol). Company hulls that carry trade through the jump gates stay their company's on the far side.
  • Sensors, signatures and stealth (Core/Sensors). Nobody simply knows where another ship is. Every hull gives off heat (going with its surface, so a battleship glows over five times as warm as a freighter and a fighter hardly at all) and EM from its active systems; a drive burn adds a plume that scales with its thrust, and weapons fire is brighter still, while silent running damps the heat to a tenth, kills the EM and the transponder, and cannot hide a burn. A hulk is cold and a ship on the ground is hidden from space. Scanners have a range (how far they see a freighter's heat; the reach on anything else goes as the square root of its signature) and a resolution: a merchant's navigation set sees a coasting freighter at 200,000 km, a warship's suite at 400,000, a station's traffic control at 600,000, and each scanner suite fitted adds half again and finer resolution. A contact starts as an unknown blip, resolves to its hull class once it is well inside reach and to its identity closer still (at once if it squawks a transponder: lawful ships do, pirates never), and is lost once it has been out of reach for the picture's hold time (half a day for a faction, five minutes for your own ship). Each faction's ships and stations share one picture, swept every 2.4 hours, and the AI acts on it: navies hunt only raiders they have seen working their ports and track raiders home to hidden havens, patrols hail only a ship they can make out (running dark, a hull can slip contraband past a picket at 50,000 km, but going dark mid-scan is running from it), crimes are witnessed only by those whose scanners reach them, and a raider lying dark beside a lane catches a merchant unawares, but a warship (or an escorted or scanner-fitted merchant) makes it out on the way past and rides the pulse out with drives and shields up.
  • Information lag (Core/Information). What anyone knows of another place is as old as the news that brought it. Inside a system nothing travels faster than light, about 8.3 minutes an AU: a scanner sees a ship where it was when the light left it, and a sighting in a faction's shared picture is radioed on to its fleets at light speed, so a navy group at Jupiter hears of raiders working Earth three quarters of an hour after the picket there saw them, sails for raiders that may have gone, and has not yet heard of ones that just came. Between systems the markets and the news come only through the gates: every day each settled system's relay beams its market boards and its notable news (captures, diplomacy, economic shocks) out to its gates, the gates pass them on in the time a crossing takes, and the far gate beams them in (about 0.7 days Sol to Alpha Centauri); a blockaded gate passes nothing, and every ship that crosses carries what its system knew when it went in. A system keeps only the newest report from each other one, and its freighters plan their interstellar runs on those boards rather than the real markets, so a run planned on a shortage the news reported can arrive at a glut. News from abroad appears in the news feed with its age and how it came, and the navigator shows how old the news from each settled system is.
  • Named outlaws, bounty boards and bounty hunters (Core/Law/Outlaws.cs). Every raider band's captain is on the law's books from the day the band sails: a name, a flagship, a home haven and a record built from what the band actually does. Each lawful hull it destroys (40,000 cr), robs (boarded and taken, or its cargo ransomed: 30,000) and each cargo ransomed (20,000 more) goes on that record and on top of the bounty the crime posts, so the price on a busy captain climbs with every fight. Every lawful port keeps a bounty board (F4): everyone its owner has a bounty on, the outlaws and the player alike, biggest first, with what they have done, where they were last seen and by whom (a lawful ship or station in sensor range sights an outlaw at large every day; a sighting over a haven nobody has found says only "somewhere in the Belt") and who is hunting them. While there is unhunted money on the boards the free traders fit out bounty hunters at the biggest lawful yard (a cruiser and a destroyer each, up to three in Sol and one at Alpha Centauri): a hunter takes the contract worth the most for the fewest days away that it can match (seven tenths of the strength of the target's band and of whatever would fight beside it there, all of it for a feared name), flies to where the target was last seen and fights it there, and collects on it, each poster paying its own. They come for the player too: wanted for 100,000 cr or more, a hunter with the contract that comes within 250,000 km moves on your ship, enforcing the law as a patrol would. A captain who survives 120 days at large with four recorded crimes (or six kills) becomes a feared name: their bounties rise by half (and every crime after costs half again), and crews facing them keep only seven tenths of their nerve, striking their colours sooner. The dead and the taken stay in the rogues' gallery.
  • Your own fleet and property (Core/Economy/Holdings.cs, F10). Buy hulls at any lawful shipyard (freighters, ore haulers, couriers, destroyers, at the yard's price, paid to its owner) or take the ship you are flying into your fleet, hire captains (each with a skill: a veteran costs more and turns a ship round faster in port) and give them standing orders: a trade route (at each stop the captain buys whatever earns most per day at the next), mining one of your claims (a holdful of ore cut for nothing, at the claim's yield, then sold wherever it fetches most), escorting another ship port to port, or a patrol. Owned ships fly your house flag and are simulated like any other: they plan real runs, burn and buy propellant, pay tolls, land through the rings, get raided and fight. Their takings come into the house account and their costs go out of it, with captains' and crews' pay daily; a captain unpaid for five days walks off. Property: a warehouse at a port (buy goods into it, sell them later; rent a day), a share of up to half a station or colony (a daily dividend of the port taxes its trade pays) and mining claims. Every credit is on the books, and a ship or property lost (destroyed, taken, seized by pirates) is a loss at what it was worth. Move money between the purse of the ship you fly and the house account from the panel.
  • The trading game (Core/Economy/TradeDesk.cs, backslash key). A full trader's career on the live economy, beside buying and selling at the helm, the contracts boards and your own fleet. Prices are not known everywhere at once: the trade desk holds each market's prices as you last saw them in port, as your captains in port report them every day, or as a broker at a lawful port sells them (a price sheet of every known market in the system); each sheet ages, trusted half as much after eight days, and the desk ranks the runs they add up to (buy where a good is cheap and to spare, sell where it is dear and wanted, net of port tax and the price walking against the trade, weighed by how fresh the prices are and the risk at the far end), with an idle house freighter to send on any of them. Trade news lists the market shocks in force and what they mean for a trader, markets your prices show paying twice the odds, and whatever you own at a port in danger. Every risk is priced one way: raiders lately at its world, a blockade or an embargo closing it, and how near it is to collapse (unrest, hunger, thirst and want, people leaving). The trading companies post time charters for the hulls they cannot build fast enough: a crewed hull of the class asked goes out for a term of weeks to months, trades wherever pays best for the charterer (who keeps its takings and losses and pays the house its hire every day) and comes back to its old orders; recalling it early costs ten days' hire, and a charterer that cannot pay ends it. Free trading is a standing order of its own too. Underwriters insure a hull with its cargo, or a warehouse with its stock, for a premium a day that climbs with the risk where it trades or stands (nobody writes a policy past 85%), and pay out on a hull destroyed, taken or cast adrift or a warehouse seized. Every lawful port has a back door: what its open market will not take (stolen goods, a good its owner bans, anything at all under a blockade or an embargo against your flag) its smugglers buy off the books at a premium, the goods landing in its stores, but customs may be waiting (more under a blockade's pickets, more for a captain with a price on their head), and caught, the crates are seized and you are charged with smuggling. Your house is ranked by what it is worth (peddler, hauler, merchant, shipowner, shipping magnate, merchant prince), and rank buys brokers' and underwriters' discounts and better charter hire. Charter hire, premiums, cover, risk loading, how fast prices go stale, the broker's fee, customs vigilance and the back door's premium are in Settings > Economy; new kinds of trade news register a source.
  • Belt mining and megastructures (Core/Economy/BeltMining.cs). The raw stuff of the big builds comes out of the asteroid belt through a real pipeline: capture tugs bring rocks of forty to a hundred and forty metres in to a refinery, carbonaceous, stony or metallic by the belt's mix, grinders reduce them to dust, and separators split the dust into elements (nickel-iron, water, organics, titanium, copper, zinc, rare earths, platinum-group metals) by what each kind of rock holds, the rest slag. Convoys haul each load to a warehouse, often on a remote moon, taking the real distance at the time they sail, and every megastructure (a shipyard, a space elevator, the rings of a Dyson swarm, each finished ring laying down the next) draws its bill from its builder's warehouses, never faster than its kind allows. A finished shipyard gives the settlement at its site a yard. Raiders prey on the chain where it is weakest: a convoy on its way is robbed far more often than a warehouse is raided, both in step with how many raiders are about, less for an escorted convoy or a guarded depot. In Sol the Belt Consortium's works at Ceres ship to a depot on Callisto that feeds the Ganymede Elevator and a swarm ring around the Sun. New kinds of rock and of megastructure plug in by registering them. Alongside the capture tugs work ore tugs (ShipClass.OreTug): no hold, just a big engine with claws (a hull frame, a clawed mesh, a skeleton crew) that latches onto a rock or a block of comet ice hundreds of metres across and pushes it in, its acceleration its drive's thrust over the tug and its load together, so a big load comes in over weeks or months: rock to the refinery's grinders, ice to the refinery or straight to a depot to be melted for its water and volatiles. Through open space a tug takes at most twenty million tonnes; a heavy lane (Sol's Ceres-Jupiter lane is one) carries loads of up to a hundred and fifty million, far faster. Every tug is a real hull in the fleet (U.SPC-T498): it lies at the field it works until its works sends it out, latches its load on (drawn ahead of its push plate, the tug and its load switching from icon to model together), flies the haul itself, on heavy lanes only while laden, lets go at the refinery or depot and comes home empty; raiders can seize it only where it actually is, by the raiders about it there or in a fight, and a seized tug flies their colours to their hold; the player can take its helm like any ship's. A works keeps fewer tugs for each one lost. Sol's two tugs push belt ice out to Valhalla along the heavy lane.
  • Contracts boards (Core/Economy/Contracts.cs). Every lawful port posts jobs from what the system actually needs, checked once a day. A market whose stock (with what is already on its way) falls below half of what it wants posts freight for that good at the nearest port that has it to spare: a bulk lot for a merchant's hold (up to 8,000 t) and a parcel of eight crates for a pilot's, no more between them than brings it back to seven tenths. Where people are leaving a settlement they want passage to where people are going: a small party at a time, and a colony party (paid for by the settlement that gains them) from one losing more than 20 a day; they really move, leaving when they board and arriving when they are put ashore, and are counted against the migration that would have taken them anyway (a party is never more than a twentieth of a place, nor takes it below six tenths of its founding people). A merchant under way with a cargo worth 2 million cr into a dangerous port posts for an escort to be there when it comes in; a settlement that has seen fighting or raiders lately posts a patrol over itself; each power's capital posts surveys of the nearest bodies no ship has been to; and every price of 100,000 cr or more on a head is a bounty contract at the biggest port of whoever posted most of it. Pay is the job's base (the goods' worth, a fare a head, a fee) plus so much for every AU from the board, doubled at full danger at the far end and raised by half at full urgency; the shorter the market or the faster people are leaving, the more urgent, and freight is due sooner. Merchants take freight and people, free ships and couriers surveys, and bounty hunters with nothing to chase patrols and escorts (a hunter's own bounty contract shows on the board as taken). The player signs at the board of the port they are alongside (F7): freight is bought at any market and handed over crate by crate at the destination, passengers ride in the hold's cabins, a patrol is time on station, a survey is flying close in. A completed contract pays and raises standing with the patron; one failed (overdue, the cargo or the people lost, the client sunk) or abandoned costs it (6 and 4), and below -10 the patron offers no more. An offer nobody takes lapses, and comes down early once its need has gone (the shortage filled, the client in, the body visited).
  • Alive or dead (Core/Law/Outlaws.cs). A bounty pays in full for the captain alive and half for them dead. Destroy the flagship and the kill pays only on proof: hunters fighting there scan the wreck on the spot, and the player has to bring their ship within 2,000 km of it before it breaks up (F4 lists kills still unproven), or the bounty lapses. Disable it instead (engines out, the hull nearly gone or the bridge lost on a holed hull) and board it through the usual boarding fight: hunters now carry marines, sail with a brig and hold their fire on a disabled quarry while their boarders go across, and a flagship taken puts its captain in a brig berth aboard a ship on the captors' side (the player's first). A held captain is handed over at a lawful port of a faction that posted a bounty on them for every bounty in full (hunters make for the nearest such port; the player hands over from the bounty board), or ransomed back to the raiders at a haven for three quarters of the price (at least 50,000 cr), going free and still wanted. A holding hull beaten below a quarter of its hull has its brig breached and the captain gets away, one taken by raiders is freed, and one going down lets them break out into its pods. A captain reaches the escape pods as their flagship goes four times in five (about one in three when the reactor goes) and stays wanted while adrift: whoever tractors the pods in has them (a lawful ship into its brig, raiders set them free to command the next band that sails), and pods left alone take them when the air runs out. A raider's BOUNTY adventure now pays its own price, the law's bounty paid on top the same way.
  • Adventures near you (Core/Events). Whatever the sim is doing around you turns into timed opportunities, each with a HUD marker, a short hook, an expiry and a reward (credits, cargo crates for your grid hold, standing with a faction): distress calls from ships really under attack or drifting after an interdiction pulse, derelicts and wrecks to latch on to and pick over, raiders lurking off lanes with a record of ambushes, merchants paying for an escort across a dangerous lane, bounties on the named captains of real raider groups, escape pods drifting where a hull died (come within 50 km to take them aboard: their owners pay for a rescue and the pirate hunters pay for raiders; a pirate pilot holds them for ransom instead), and the odd rare anomaly. Fly there and see it through; ignore it and it fails when it expires or the situation settles without you.
  • Pilots, not clockwork.
    • Avoidance: every ship watches the others an hour or so ahead. When two would pass closer than a safe distance (a few km plus a few hull lengths), both turn aside, the smaller giving way more, and drift back onto their planned path once clear. Ring queues are a spaced line up the approach path.
    • Diversion: merchants still on their way to a port where fighting has just broken out change course mid-flight, keeping their momentum, for the nearest safe port.
    • Free ships: yachts, survey ships, deep-space explorers and prospectors go where they please. They hop out to open space near a world to drift, then wander on to its neighbours.
    • Route planning steers round every world in the way, not just the trip's two ends.
  • Hyperlanes. Twelve lanes link the planetary systems from Mercury to Pluto. Each system has a ramp per lane just outside its moons; a ship flips-and-burns to the ramp, rides the lane at up to 4% of light speed (easing in and out), and flips-and-burns from the far ramp to its destination. Earth to Mars takes a freighter about a day and a half instead of eleven. Lanes bow away from the Sun and route around it. Every ship riding a lane, or lurking off one, shows as a marker in its faction colour. Up close a lane is an X3 Rebirth-style highway: a chain of rings the size of its ramps' ring gates, one about every 2 million km (a few dozen between Earth and Mars), that speed a rider up through the first half of the ride and brake it through the second; each ring is drawn only once it is more than a couple of pixels across, so from afar the lane is its ribbon. Each system's network also leads on to its jump gates: an amber spur per gate runs from the planetary system on the network nearest the gate to a ramp just in front of it.

Alpha Centauri and the way between the stars

  • A second star system. The Sun's nearest neighbour, from published data:

    • Alpha Centauri A and B on their real 79.8-year orbit (Akeson et al. 2021), swinging between 11.2 and 35.4 AU apart around their barycentre.
    • Proxima Centauri, 12,000 AU out on its half-million-year orbit, placed where its sky position and distance put it today.
    • Planets: Proxima d and b (confirmed), Proxima c (disputed) and the JWST giant around A, "S1" (candidate). Unconfirmed worlds are labelled wherever they are named.
    • Assumptions, listed in Core/Systems/SOURCES.md: orbital planes, phases, radii and the stars' poles.
  • Simulation: every system runs all the time on the shared clock. Only the one you are in is drawn.

  • Lighting: the two brightest stars where the camera is light the scene, each in the colour of its photosphere (A white, B orange, Proxima red). Proxima flares now and then.

  • Getting there: click Alpha Centauri under STAR SYSTEMS in the navigator. The camera:

    1. pulls out of the system until it is a point;
    2. turns toward the destination and glides 4.34 light-years through a view of the 21 nearest real stars;
    3. falls into the other system's overview.

    Esc skips the trip. A piloted ship can make the crossing itself through the jump gates (see Piloting below).

  • The gate network. Jump gates join the fourteen simulated systems in a sparse lattice, not every pair: each system is linked to its two nearest, and any islands that leaves are joined by their shortest links, so every star is reachable, many only by way of others (18 links; Tau Ceti is four gates from Sol). Each gate sits at its system's edge facing the star it leads to and belongs to that system's leading power. A crossing takes six hours plus two hours a light-year (Sol to Alpha Centauri, 4.34 ly, about 15 hours).

  • Traffic between the stars. AI ships route over the gate graph by crossing time, flying out to a gate, through it and on to the next. Freighters carry a good to another system's market when the price gap there beats the trip, gate tolls included (3% of the cargo's cost a light-year, paid to the gates' owners), trade there a few weeks and bring a backhaul home; couriers carry the mail between Sol and Alpha Centauri for a fee; yachts and survey ships go to look at the unsettled stars; raider groups now and then slip out to raid the other settled system.

  • Continuous interstellar flight (Core/GalacticPosition.cs, Core/Systems/CruiseDrive.cs, Core/Systems/DeepSpace.cs). A ship with a cruise drive can leave any system for any star, gates or none. Who has a drive of their own is the owner's roster, as data (FtlRoster, U.SPC-T472, see docs/SHIP_ROSTER.md): carriers and gate breakers always carry the capital drive, a light-year a day after six hours' charge, and battleships and command cruisers only while their design fits the FTL drive facility (two sections of internal space: each stock design is drawn with one, and a yard can strip it for plate or racks, the hull then going by the gates); the deep-space explorer, the survey services' own hull (Sol starts with two, Alpha Centauri with one), carries the survey drive, two light-years a day; cruisers, destroyers, frigates, fighters, gunships, couriers, freighters, haulers and breachers have none and cross by the gates (a corvette never leaves its home system, U.SPC-T476). Carriers, and battleships and command cruisers with a drive, take fighters and small craft with them docked aboard (FtlCarriage: a carrier has 12 berths, a battleship 4, a command cruiser 3; a fighter takes one, a courier, gunship or breacher two), so a fleet can strike or explore off the gate network with its wings; a carrier also has four docking clamps on the outside of its hull (U.SPC-T473) that take escorts with no drive of their own through its jump (a destroyer takes two, a frigate one; never a corvette, which does not leave its home system), so a jump strike group is a carrier, the capitals with drives of their own and the escorts clamped to it; craft docked aboard or clamped on are lost with the hull carrying them, and a hull's berths and clamps and a craft's size are data registered per class. A group flies out under its ordinary drive to the edge of its star's gravity well (2 AU), charges, runs up to cruise speed, crosses the light-years at a real place the whole way, runs down and drops out at the edge of the far star's well on the side facing home, then flies in to its business like any ship there (escorts with no drive of their own ride docked aboard if there is a berth, or clamped to a carrier's hull if there is a clamp, else stay behind). Sol to Alpha Centauri takes about four and a half days that way against fifteen hours by the gate, so the gates stay the shortcut that carries most traffic; across the whole galaxy it would be centuries, a few minutes at the top clock rate. Traffic takes the open-space way when the gates do not go there or are shut to it, an explorer now and then goes off the network to look at a star nobody simulates (it holds at the edge of its well a week or two, then comes home), and anything can be sent to any system or star by its own drive. The space between is not empty: hostile groups whose paths come within a light-hour of each other may fight (the stronger hand pulls the other out of cruise; raiders rob a laden hull and let it go, a navy leaves the beaten group as wrecks), and a group passing a wreck drops out to strip it. Each kind of encounter plugs in by registering it, and a new drive by registering it for a hull class. Every place out there is a galactic sector (a billion-km cube) and an offset from its centre, so a hull fifty thousand light-years from Sol is placed to a tenth of a millimetre, as one next to Sol is; each system keeps its own km about its root, and its origin says where that frame sits in the galaxy. The FTL settings tune every drive's speed and the well's edge.

  • Life in deep space (Core/Systems/DeepSpaceLife.cs). The space between the systems holds things of its own. Every route a group flies, or the helm plots, is seeded the first time with what lies along it, drawn from the route's names and the galaxy's seed so it is the same every time (the routes between the running systems from the start), and a new kind plugs in by registering a DeepSpaceFeatureSpec. Rogue planets (a twentieth of Jupiter's mass to three times it) have wells of their own that pull a passing group out of FTL like a star's, and the helm's course plots them. Nebulae, light-hours across, cut sensors to a tenth inside them, so hostile groups slip past each other and wrecks go unseen. Ice bodies give water to a group below half its reaction mass, which drops out a day to mine it. Derelicts wait to be stripped. Each settled power keeps a listening post on its approaches, which hears an enemy group pass within a light-day and tells home, and a deep-space relay half way to each neighbouring system, which carries the news (at half the gates' pace) when the gates cannot; an enemy with guns passing within a light-hour knocks either out. Distress calls go out now and then on the routes: a passing group answers (a war fleet on campaign does not) and is paid a bounty for the survivors, pirates strip the hull instead, a call nobody answers falls silent and leaves a derelict, and one in five is a clan's lure that robs a trader who answers it and is beaten off by a strong enough warship. Ambushes and interdiction: a system's pirates send a band with a drive of its own out to lie in wait half way along the run to another settled system, and a navy at war pickets the approach from its enemy's, each with a gravity projector that pulls every passer not of its side out of FTL within reach of its guns, for two to four weeks before it goes home. Survey finds: a deep-space explorer, or any hull on a survey, charts the rogue planets, nebulae and ice bodies it passes within five light-hours and is paid for them, three times as much off the gate network, and the first to reach a plain star off the network is paid for its charts, more the farther out it is.

  • Blockades. A gate never opens for its owner's declared enemies, and after raiders come through it, its owner shuts it to everyone but its own ships for 30 days and sends a navy group after them to the system they came from. Traffic then goes round by other gates, or waits at the gate (and gives up after 8 days). The STAR SYSTEMS navigator shows how many gates away each system is, the gates of the one you are in with their crossing times and which are shut, the ships in the gates, and the ships here from beyond them; the view between the stars draws the lattice (red where a gate is shut) with the ships in transit moving along it.

  • The galaxy map (Core/Information/GalaxyMap.cs, [ or GALAXY MAP in the navigator). A full screen of every simulated system at its real place, seen from above the ecliptic and tilted to show depth (drag to turn, shift-drag to pan, the wheel to zoom), with the gate network between them. Each system is washed in the colour of the polity that holds it, with a smaller wash for every other polity with markets there; each gate link is drawn as thick as the traffic through it over the last 60 days, sparks flowing along it each way; a gate between two systems whose holders are at war is a red dashed front, a shut gate has a red bar at its shut end, a system fought over or with a port under siege or blockade is ringed in red, and raiders (armed raider hulls, known havens, raids through its gates) are marked in orange. Gates being built are dashed and filled as far as built. All of it is what the player knows: the system you are in is seen as it is, every other only as the newest news of it that has reached you through the gates had it (how old is shown under its name), and a system never heard from is a bare star on the charts. Click a star to inspect it (holders, people, sieges, raiders, each of its gates with its traffic and whether it is shut), and TRAVEL (or a double-click) flies there through the gates as STAR SYSTEMS does. The panels keep to the middle 21:9 of a wider screen.

  • Interstellar piracy (Core/Systems/PirateClans.cs, Core/Economy/BlackMarket.cs). A pirate clan is one polity wherever it holds havens. Its bands lie in wait off a system's busiest jump gate, where traffic bunches up going in and coming out, as well as on its hyperlanes and at its ports, and fall on whatever comes within 3,000 km of them (a fight out at a gate takes in only the ships at that gate, and is named for it). What they take goes to the clan's haven in that system, or home through the gates in their holds. When a haven's stores fill with loot, one of the clan's smugglers runs it through the gates to the black market of a lawless station in another system (Scree at Luhman 16, Cinderfall at Wolf 359, Cometreach in Tau Ceti's disc), which pays its own prices: twice its usual share of the base price when it is empty, falling as it fills, more than a haven's own fences pay, and its middlemen pass the goods into the station's stores a little each day; its guns look the other way when a smuggler docks. A rich clan sends a band through the gates to found a hidden haven in an empty hide in a frontier belt or disc (Driftglass in Tau Ceti's debris disc, Farstrand in Epsilon Eridani's 70 AU ring), in two systems at most, and moves bands between its havens; a haven abroad that has stood half a year may break away as a clan of its own. Every state a clan robs puts the value on its head, paid to whoever destroys or takes its hulls, anywhere; those states send navy expeditions through the gates to storm its hidden havens once found, and bounty hunters go after its bands in the systems where they work.

  • Seeing the other system: each system shows the other in its sky. Alpha Centauri is marked from Sol, and the Sun shines in Cassiopeia from Alpha Centauri.

  • Alpha Centauri's game layer, thinner and younger than Sol's:

    • Centauri Accord: governs the Proxima colonies with a small navy.
    • Toliman Combine: a corporate concern with no warships, running stations round A and B.
    • Kentaurus Free Traders: carry most of the freight.
    • Long Dark: raid the long lanes from Blackhollow.
  • Settlements: New Kentaurus, Ember Station, Far Reach, Rigil Gate, Aurora Skimmer, Toliman Forge and Blackhollow.

  • Crossing: two trunk hyperlanes cross the 12,000 AU between the A–B pair and Proxima in five days each.

The nearest real systems (Core/Systems/NearbySystems.cs)

  • Twelve more systems are visitable from STAR SYSTEMS, each at its real place and distance: Barnard's Star, Luhman 16, Wolf 359, Lalande 21185, Sirius, Epsilon Eridani, Ross 128, Epsilon Indi, Tau Ceti, GJ 1061, Luyten's Star and Teegarden's Star.
  • One builder: every system outside Sol, Alpha Centauri included, is a catalogue entry that one builder (StarSystemBuilder) turns into bodies.
  • Stars and binaries: Sirius A and its white dwarf, and the brown-dwarf pair Luhman 16, move on their measured visual orbits. Epsilon Indi's brown dwarfs Ba and Bb circle each other 1,500 AU from A.
  • Planets: the confirmed ones come from the NASA Exoplanet Archive, with their real periods, axes, eccentricities and masses ("at least" where only m sin i is known). Candidates (Wolf 359 b, Lalande 21185 d, Luyten d and e) are labelled as such. Each planet is flagged inside or outside its star's habitable zone (Kopparapu et al. 2013).
  • Debris belts: Epsilon Eridani's three belts and Tau Ceti's disc are drawn in their measured planes.
  • Unsettled: these systems have no settlements, lanes or ships yet. Anything put there later is game-layer fiction.
  • Sources: every value is listed in Core/Systems/SOURCES.md.

The rest of the galaxy (Core/Systems/SystemSources.cs, CatalogueStars.cs, ProceduralSystems.cs, GalaxyStreaming.cs)

  • Full scale. Past the hand-built systems the galaxy runs to the far rim of the disc, some 75,000 light-years from Sol: real catalogue stars near Sol (the nearest systems out to 20 light-years that are well enough known to place, and bright landmarks such as Vega, Fomalhaut, Pollux and Arcturus beyond), and stars generated from the galaxy's seed everywhere else, never within the real neighbourhood or within three light-years of a real star.
  • The Milky Way's shape. Generated stars fill a thin exponential disc about the real galactic centre (Sagittarius A*, 26,700 ly off) and plane, as thick as the Sun's neighbourhood here, twenty times thicker toward the core, thinning to nothing past the rim and above the plane; three in four are red dwarfs, as near the Sun. Each has planets (a few on average, rocky ones most often) and now and then a belt, all labelled fiction.
  • One seed, one galaxy. Space is cut into 10-light-year cells, each made from the seed and the cell alone, and each star's planets from its own seed, so the same seed is the same galaxy star for star, whichever way and in whatever order it is reached, and a star let go and come back to is the same star.
  • On demand. Nothing is made up front. As the player moves (the system they are in), the stars within the star chart radius (20 ly) are charted as plain stars, shown between the systems and open to a cruise drive, and any within the system streaming radius (3 ly) is built into a full system that runs with the rest, empty and open to the first gate in. A system built this way that nobody has gone to, gated, settled or set out for is let go again once the player is far off. Both radii and the most stars kept on the charts are under Streaming in the settings.
  • Known and undiscovered. The real neighbourhood is the exception: every system of the 100 ly chart (docs/NEAREST_STARS.md) and every void station between them is in the galaxy from the start (Core/Systems/StarDiscovery.cs). Those within 21 ly of Sol are charted and known; the rest start Undiscovered, a state of their own: on no chart, not on the galaxy map, not an FTL target or a course, never surveyed, cruised to or built, though a star's well still pulls out a group flying past. One is discovered, logged between the stars and put on the charts for good when the pilot or any group crossing open space comes within the discovery range (Settings > Simulation, 7 ly by default, one gate's reach, so going to each star as it is found reaches them all) or falls into its well. New ways of finding stars plug in as a lookout.
  • One extension point. Every system outside Sol comes from a registered system source: the hand-built systems first, then the catalogue, then the procedural galaxy. A source charts its stars near a place, defines one as a catalogue entry for the one builder, and may claim a region so the generated stars stay out of it; registered content is laid into every system any source defines. New systems, regions and content plug in by registering a source or content, not by editing the galaxy.

Orbital industry and docking rings

  • Industry in orbit. Every settlement's industry is now physical, in orbit round its world:

    • its shipyard is an open lattice cradle with the hull it is building framed out rib by rib, then plated as build points accrue, and launched from the yard's orbit;
    • each foundry, fab, works, arsenal and lab is a factory station with radiators;
    • big settlements have a spinning habitat ring.
  • Real spacecraft:

    • ISS, Tiangong and Hubble;
    • JWST and Euclid at Sun–Earth L2, SOHO and DSCOVR at Sun–Earth L1, and Queqiao, the Moon's far-side relay, at Earth–Moon L2;
    • five Mars orbiters and the Lunar Reconnaissance Orbiter.

    Orbits are circular at the published altitudes and inclinations; where each craft sits along its orbit is illustrative. Constellation clouds (Starlink shells, GPS, Galileo, GLONASS, BeiDou and the geostationary belt, thousands of points) are off by default; K shows them.

  • At the Lagrange points. Depots, relays and gateways sit where they belong: the Cislunar Depot and the L1 Gateway at Earth–Moon L1, the Farside Depot at Earth–Moon L2, the Sunward Relay at Sun–Earth L1 and the Outbound Depot at Sun–Earth L2 (the Federation's), and the Greek Camp Depot and Trojan Camp Relay at Jupiter's L4 and L5 (the Consortium's), which ride co-orbital with Jupiter, 60° ahead and behind, at both scales.

  • Docking rings. Every ship landing on a populous world with an atmosphere goes through one of its docking rings. Each ring is a station hovering directly over a city at stationary-orbit height (42,164 km from Earth's centre), turning with the ground.

    • Fiction: away from the equator a ring must keep station by thrust.
    • Earth's seven rings: New York, Paris, Beijing, Tokyo, Sydney, Johannesburg and Moscow.
    • Other ringed worlds: Mars has two, Venus one, Titan one, and Proxima b two on its terminator.
    • How many rings: more people, more rings (⌈log₁₀(population / 10⁵)⌉).
  • Landing. Merchants and couriers land; warships and pirates hold orbit.

    1. Approach: the ship flies to the ring's holding point, velocity-matched to a point turning with the planet.
    2. Queue: it waits its turn; each ring clears one ship every 30 minutes.
    3. Descent: it drops tail-first down the line to the city, glowing with entry plasma through the atmosphere.
    4. Trade: it lands and trades.
    5. Departure: it climbs back to the ring and leaves from there.
  • Effect on trade: route planning counts the queue and the descent.

  • Hull textures: hulls, stations and structures are plated with a CC0 sci-fi panel texture (ambientCG MetalPlates015A), projected triplanar. Factions are told apart by the shade of their plating as well as their trim.

Piloting

  • Any ship, anywhere. Select a ship and press P to take the helm, whether it is parked, mid-transit, on a hyperlane, queued at a ring, landed or in a battle. An escort leaves its formation; a ship already fighting hands you its place in the battle. The clock drops to real time (press . to speed it up), and P again hands the ship back.
  • Flight. Newtonian: every design has a mass, a main drive, weaker retro thrusters, manoeuvre thrusters on each axis and moments of inertia, so a hull carries its momentum and a carrier's nose is slow to start swinging and slow to stop. The mouse steers, W and S thrust, A, D, Q and E strafe, Z and X roll, Shift lights an afterburner. With flight assist on, the flight computer counter-thrusts toward the velocity the stick asks for, killing drift and holding the hull against gravity as far as its thrusters can. F switches it off: then the throttle is raw thrust and nothing cancels anything, for sliding past a target with the guns on it or flipping end for end and burning to brake. Near a world (within four of its radii) its gravity pulls on the hull; a hull too weak to hold itself up sinks and comes to rest on the surface. The HUD shows a boresight, the prograde and retrograde markers joined by the velocity vector, and how far the track is off the nose. The field of view widens under boost and cruise.
  • A flight model per kind of craft. Each family of hulls flies by its own rules with flight assist on (see docs/FLIGHT_MODELS.md). Light fighters (the Fighter and Courier) fly Star Conflict style: the track carves after the nose instead of sliding, they strafe hard, and the nose swings fastest at or below the corner speed (60% of top speed) and stiffens toward full boost, so easing off tightens a turn. Interceptors fly the same rules pushed further (more grip, the hardest strafe, a turn that holds to 75% of top speed), and bombers fly a steady torpedo platform of their own (one turn rate at any speed, a wide carve, a weak strafe and a throttle with heft). Capital ships fly Black Flag's handling in full 3D (U.SPC-T499): W and S ring an engine telegraph a step at a time (Full Astern, Stop, Slow, Half, Full and Flank, which is the boost) and the step holds; the nose swings fastest at Half, the fighting speed, less at Full and Flank, and only pivots slowly at Stop; a keel holds the track to the nose so a turn traces a turning circle; and pitch, yaw and roll are all free, slow and heavy, with no battle plane, so a capital climbs, dives and rolls to bring a broadside to bear above or below it. Each class's turn is fitted to its come-about, 180 degrees at Half: a destroyer in about 6 s (the skirmisher, with the tightest circle and the fastest Flank), a cruiser 10, a battleship 14, a carrier 18. Heavy fighters and haulers still fly the shared Newtonian model until their own models land. With assist off, every hull flies the Newtonian model.
  • Propellant. The piloted ship flies on its own tanks: every change of speed or direction is paid for in reaction mass by the rocket equation, and a dry hull only coasts. The status bar shows the tanks, the ship panel the tonnes and delta-v left. At a settlement's world the market's Refuel button fills them at that port's price; anywhere else, CALL A TANKER (shown when the tanks are low) brings one alongside at a call-out fee and three times the going rate.
  • Collisions and ramming. Hulls are capsules as long as the ship and as thick as its beam; stations, yards, the belt's real asteroids (sized from their brightness) and every piece of a wreck's debris field have volumes too. A contact exchanges momentum (part bounce, mostly crumpling, with friction on a glancing scrape) and the kinetic energy it soaks up is damage to the hardpoints on the struck side, through that side's shield, scaled to the hull's own mass: a courier that rams a battleship is wrecked while the battleship is scratched, a courier into a station at full speed loses well over half its hull, and a carrier nudging one at its own speed a percent or two. Bumps under 5 m/s do nothing, so latching on alongside a hulk is safe; coming down hard on a world hurts the underside. A unit you ram in battle is knocked off its line; a ship on its schedule, a rock or a drifting debris field holds its track. A hull broken up this way leaves a wreck to salvage, and a fast pass is swept so nothing slips between frames.
  • Hyperlanes. Fly in through a ramp's ring gate (drawn to its true 1,500 km radius up close) and the hull joins the lane on the same ride AI traffic takes: the chase camera rides the tube at up to 4% of light, the clock runs fast enough that a ride of hours takes under a minute, tunnel streaks stream past and the view widens with the speed, and the gate flashes going in and coming out. The number keys pick the off-ramp's exit: 1 comes off into that system, easing to rest and coasting out of the gate, and 2 and up carry on along another lane from there. Taking the helm of a ship already riding a lane keeps it riding; P mid-ride hands the ride back to the crew, who carry on to the far system. Raiders lying dark beside a lane are a rider's danger too: their charged pulse emitter shows on the scanners well before the hull (a merchant's nav sensors pick it up about 4 million km off, a warship's or a scanner suite's further), the clock slows so the countdown to the pulse can be read, and the pilot answers it: Shift surges the rest of the ride at 2.5 times the pace (spending the boost charge), with a 60% chance of being through before the pulse's shell closes; Ctrl drops out of the lane short of the field, coasting; or ride on into it. Caught, the hull is thrown out of the lane, drives, guns and shields dead for a minute or two (unless the scanners made out the raider's hull and it was braced), and the ambush is a fight beside the lane flown from the helm. Out of the lane near where it left (dropped out, or the fight over or fled), Y gets back in there and rides on. The ride threads the lane's chain of rings, the HUD counting them off (accelerating, then braking). An off-ramp's exits include the spurs on to the system's jump gates, and a spur is also joined by flying through the ring at either end the way it runs: ridden to its gate, it ends in range to open it (Y), and coming out of the far gate, the far system's own spur starts just in front of it, back on to that system's network. AI crews keep to the lanes and reach the gates by their own legs; a spur ride handed to the crew is brought back to the network.
  • Cruise. Hold J while flying straight at full throttle and the cruise drive spools the main drive up to many times its thrust, and flight assist up to far beyond normal top speed (with assist off it just keeps accelerating). It drops out the moment you take damage, enter a battle, throttle down or turn hard, and weapons cannot fire while cruising.
  • Weapons. Flying near hostiles starts or joins a battle. Left mouse fires the forward guns along the nose (missiles go to the locked target); side and aft batteries and point defence keep fighting on their own. T locks the camera onto the hovered or selected ship.
  • Hails. In a battle, the number keys answer: to a pirate demand for your cargo, 1 hands it over and 2 refuses; to an enemy that strikes its colours, 1 demands its cargo, 2 takes the ship and 3 lets it go.
  • Cargo and trade. I opens the ship's grid cargo hold (a per-class grid; click a crate, then a cell, to move it). Near a settlement's world, the M market board shows Buy and Sell buttons that trade whole crates at the same prices and port tax the AI traders pay.
  • Spawn and pilot. V opens a screen of every ship class with a rendered preview; click one to spawn it at the camera and fly it.
  • Take charge of anything, any time (Core/Embodiment/, Runtime/UnitySpaceApp.Embodiment.cs, see docs/EMBODIMENT.md). From the strategy view, ' jumps straight into the seat in the fight in view nearest the middle of the screen (a ship's helm, or the cockpit of any fighter or bomber a carrier has launched), and ' and ; then step through every other seat in that fight; / mans the next gun on the hull flown or selected, and past its last gun goes back up to its helm. In a fighter the mouse aims and the craft turns after it at its own rate, W/S work the throttle, left mouse fires its guns down the crosshair and right mouse looses a bomber's torpedoes at the hull on its nose, so a lone bomber can make the run on a dreadnought, every gunner on the other side shooting at it for real. P hands the seat back to its AI, which flies or fights on from where it was left, and returns to command, with the view and time warp the commander had. Nothing pauses and nothing loads: time runs at real speed while a seat is held, the camera glides from seat to seat, and every other seat in the fight goes on under its own AI. A seat that is lost (shot down, the fight over) returns to command and says why. Taking nothing is just as much a way to play: the galaxy runs fully on its own.
  • Dogfighting (Core/Combat/Dogfighting.cs, Core/Combat/Fighters.cs, Core/Embodiment/FighterSeat.cs). A carrier's squadrons are classes of craft (FighterCraft, one table entry each), each a hull of its own ShipClass (U.SPC-T484): interceptors (ShipClass.Interceptor: fast, the tightest turn, light guns and dogfight missiles; they hunt fighters and go first for one closing on their own bombers), space superiority fighters (ShipClass.Fighter, the balanced workhorse: guns and four missiles), bombers (ShipClass.Bomber: slow and armoured, two torpedoes, going first for a capital whose shields toward them are down) and, on a carrier with a fourth squadron, heavy fighters (tougher and stiffer, guns and four missiles, on the gunship's hull), each with a real mass, thrust and torque and flown in the player's hands by its own class's flight model (the interceptor's and fighter's Star Conflict carving turns, the bomber's steady platform, heavy fighters on the heavy fighter family, see docs/FLIGHT_MODELS.md), with strafe (A/D, Q/E), roll (Z/X), an afterburner (Shift) and flight assist (F). Left mouse fires the guns; right mouse fires the weapon group on the second trigger (1 cycles missiles and torpedoes). T takes a lock on the hostile nearest the crosshair (again for the next); held on the crosshair the lock builds, and missiles then run it down, fighters included. Ctrl throws a flare-and-chaff cloud that draws off missiles homing on the craft (a torpedo less often); AI pilots throw them too. 7/8/9 move a pip of the reactor's power to weapons (faster reloads and cooling), shields (faster recharge) or engines (speed and thrust), 0 evens it out; AI pilots share theirs as the fight needs. 2-5 order the squadron's wingmen (attack my target, cover me, form up, engage at will); the first order makes the player's craft the squadron's lead. Capital ships have weak points open from one side only: the reactor's vent from below and astern, the engine bells from astern, the shield emitters from above; a small craft's hit there does several times the damage that gets through the shields, a locked capital ship gets its most telling weak point picked for the missiles and torpedoes (6 picks the next), and the HUD says whether it is open from where the craft is. Two torpedoes through an open reactor vent bring down a battleship, so a lone bomber can change a battle; AI bombers line their runs up on the weak points too. A shield soaks a torpedo like any other hit, but a bomber's torpedo that arrives where the capital's shield is already down does three times its damage on the bare hull, so bombers knock the shields down first and then torpedo. The weak points' damage, the torpedo's bare-hull damage, flare effectiveness and whether AI bombers go for weak points are in Settings > Dogfighting.
  • Broadsides (Core/Combat/Broadsides.cs, Runtime/UnitySpaceApp.Broadsides.cs). At a capital ship's helm the fight is a naval one, Black Flag / Rebel Galaxy style. Holding left mouse still builds a volley with the guns that bear where you look and letting go fires it; the number keys give the captain's orders. There are no bow, starboard, stern and port arcs: a battery is every gun whose fire cone takes in the line you are looking along, in 3D. 1 steps that battery through fire at will, hold fire and volley (each gun keeps its own order): a gun in volley holds its fire until every gun of the volley bearing on the same hull is loaded, then they fire together, surer and harder, and the HUD of the hull it is aimed at shows it building. 2 tells the gun crews to spread their fire over the enemy's hull, or (again, the default) to go for the patch of it whose shield field is weakest. Armour angling is measured on the hull's real surface in 3D: a shot is followed in to where it strikes the hull, and the more slanted it meets the surface there (raking the hull lengthways, on the curve of its side or the shoulder of its bow) the thicker the plate it crosses (up to a cap) and the more of it glances off, so a captain who lays its flank slanted to the fire while its guns still bear takes less (docs/SHIP_ROSTER.md, Core/Combat/ArmourAngling.cs). 3 braces the crew for a broadside: for three seconds every hit does half, its guns hold their fire meanwhile, and it cannot brace again for twelve; the HUD calls out a hostile broadside building on the hull, the moment to brace. Damage control teams (one per 250 of the crew, at most eight) patch damaged mounts in the field, to 85%, and as emergency repair crews bring back a shield emitter or gun mount shot away given time (anything else shot away waits for a yard); 4 steps their focus (balanced, weapons, shields, engines; on shields the emitters come back first and the fields under fire keep charging). 5-8 order the flagship's own warships into line ahead, line abreast, echelon or a screen on it, where they hold station and fight, and 9 lets them engage at will; 0 puts every gun back to fire at will. The HUD shows the order of the battery bearing where you look (or that no gun bears there), whether the gunners focus or spread, the brace, damage control's teams and the turning circle and come-about time at the current speed. AI captains use the same commands by doctrine: they turn the hull so the guns whose cones can take the target carry the most firepower onto it (a flank in for a broadside hull, the bow for one whose guns bear best ahead), slanted off the line of a target that fires back where their guns still bear, fire the guns that bear together in volleys, gunners focused on a weakened shield patch, a brace when a broadside they can see building is about to come in, damage control always. Whether AI captains bring their guns to bear, armour angling's strength, its obliquity cap and how much bearing AI captains give up to slant their hulls, the brace, damage control's and emergency repair's rates, the shield fields' regrowth, focus fire and each part of the AI's doctrine are in Settings > Broadsides, and how far every turret traverses and every fixed mount can be laid off the keel in Settings > Weapons. The handling (engine telegraph, steerage, keel, full 3D) is the capital flight model's (docs/FLIGHT_MODELS.md), and the turning circle and come-about the HUD shows are that model's at the speed the hull is making. Rolled at the helm, a hull's fire cones roll with it, and a cone reaches above and below the hull too, so its broadside bears on a ship above or below it.
  • Command cruisers and fleet coordination (Core/Combat/FleetCoordination.cs). The command cruiser, or battlecruiser, is a capital between a cruiser and a battleship (its own hull frame, mesh, capital flight family, 1,400 crew with the fleet's staff, and a dearer yard bill than a cruiser) that gives up most of a cruiser's battery for three facilities inside its hull: a sensor array (two sections, worth three scanner suites to its sensors), a communications suite and two targeting computers. Any hull with a working communications suite commands, so a yard can fit the three into another capital's free space too. In battle every ship on its side within its reach (20 km, half again for each further suite) fights coordinated, in full 3D: its gunners take up new targets in half the time, shoot 8% surer for each targeting computer, lay their guns on the shared sensor picture (less tracking lag on a crossing target and less falloff at range, 40% for each array) and concentrate on the hull the command ship is fighting. The command ship is its side's flagship, and its heir when a group's flagship is lost. Lose it (sunk, taken, struck, its flag bridge shot away or its systems knocked out) and the ships it was coordinating shoot 20% worse and find their targets slower for a minute and a half unless another command ship takes them over, so hostile gunners go for it first. Navies build it in the balanced, battle-line and mobilised plans, and a new one goes to lead a group at its yard that has none, its old flagship falling in as an escort. It crosses between the stars by the FTL drive its design is fitted with. Every figure is in Settings > Broadsides.
  • Frigates and the alpha strike (Core/Combat/AlphaStrike.cs). The frigate is a missile and torpedo boat: smaller than a destroyer, the fastest warship hull (twice a destroyer's acceleration, four engines, a long hard boost), with a thin hull, light shields, almost no armour and no guns but point defence. Its battery is four long-range anti-ship missile racks (50 km, 24 rounds each, against a warship rack's 40 km and 16) and two antimatter (photon) torpedo launchers with eight rounds each, all bearing forward, and its torpedo and missile magazines are spaces inside the hull. It fights by the alpha strike: it burns in at its mark with every launcher held, and only when the mark is inside 80% of its shortest launcher's reach and every launcher is loaded does it loose them all at once; then it flips and burns back out under boost to 32 km, out of the guns' reach, while they reload, and comes round for another run. It picks capital ships for its mark, and with its magazines spent it withdraws. It has no FTL drive: it crosses by the gates, or clamped to a carrier's hull (four to a carrier, U.SPC-T473; a battleship or command cruiser has no clamps). Navies build it in the carrier-group plan and the new strike-flotilla plan. The volley range, egress distance, burn and capital preference are in Settings > Broadsides.
  • Gate breakers (Core/Combat/GateBreakers.cs). The gate breaker is the siege capital built to take a jump gate intact (its own hull frame, mesh, capital flight family, 2,200 crew and a yard bill above a battleship's). It is the most heavily armoured hull afloat, with more hull than a battleship and the slowest drive of any warship, so it can take a gate's forts' fire as it closes, and its siege guns are brawling batteries of plasma cannons (a pair in the bow, three down either beam) with nothing longer-ranged, so it fights inside their reach; in a gate battle its captain picks the gate's forts before anything else. It carries the teams a gate is taken with: boarding teams (a 340-marine barracks, the biggest afloat, and two boarding shuttles that put marines aboard a silenced fort) and engineering teams (a siege engineering bay built into the hull). On campaign, a war fleet with a working gate breaker and a boarding team's worth of marines aboard storms an enemy gate the first day its forts are silenced and takes it intact, its engineers making good the damage the ring has taken, so a ring the enemy sabotaged is back in service at once instead of waiting on its owner's constructors. It never wrecks a gate. It always has its own FTL drive, since it attacks the gates the rest of the fleet would use. A navy at war lays one down at its next keel while it has none afloat. The team size, the share of the ring's damage its engineers repair, the fort preference (Settings > Broadsides) and how many each navy keeps (Settings > AI) are settings.
  • Tachyon lance (Core/Combat/TachyonLances.cs). A capital ship's spinal weapon: its shot lands the instant it is fired, with no round in flight and no lead to lay, and it is as sure at the end of its 60 km reach as close in, further than any railgun, missile or torpedo. It would change the whole doctrine, so it is held in check: only a battleship or carrier can carry one, in a bow mount, firing within 10 degrees of the nose, so the hull itself must be laid on the target; only the greatest lawful yards build one (yards of size 2 and up: Earth, Ganymede and Titan in Sol), at some eight times a railgun's materials, platinum and rare earths among them; it recharges for a minute; and while it charges it takes half the hull's shield recovery from the reactor. A hull fights at its battery's range and the lance reaches out from there, and gunners go for the lance first. Navies fit one to a battleship last of all, once everything else is fitted and only when flush. It draws as a violet-white line from bow to target, there all at once. Its range, damage, recharge, power draw and the yard size that builds it are in Settings > Broadsides.
  • Dreadnought spinal mounts and the rear line (Core/Combat/SpinalMounts.cs, Core/Combat/RearLine.cs). A battleship is built around two spinal mounts, guns as long as the hull laid down the keel with their muzzles at the bow, which cannot traverse (they fire within 10 degrees of the nose, so the hull lays them): a spinal railgun down the dorsal keel (900 a slug at 22 km/s out to 50 km, every 30 s) and a spinal coilgun down the ventral (520 a lighter, slower slug out to 44 km, every 15 s), both further than any turret, missile or torpedo it carries. A spinal mount is its own kind of hardpoint: a yard can put a spinal railgun, a coilgun, a tachyon lance (at a yard great enough to build one) or a plasma spinal cannon (1,800 at point blank out to 22 km, bleeding off to a third) in either, a railgun or plasma cannon built to the hull's length at four times a turret's materials, and the coilgun goes nowhere else. Each mount draws on a spinal power plant, a facility three sections deep in the hull, and the stock battleship carries one for each; strip them and the mounts recharge at the plants' share of the rate, a quarter with none. Its doctrine is the rear line: an AI battleship with a spinal mount standing does not close but holds its mark at 85% of its shortest spinal gun's reach (so both bear, beyond its own turrets and the enemy's), swung round toward its own side's rear so its escorts fight in front of it, its bow on the mark; it backs away from any hostile hull inside 12 km, prefers capital ships for its mark, and stays inside the fight. With its spinal mounts shot away it fights as any warship does. Navies fit their battleship's tachyon lance in place of its coilgun. The mounts draw as long armoured trunks down the keel (rails between braces, coils ringed in blue, a green bottle or a violet emitter). Every spinal figure, the plants' shortfall and the doctrine's standoff, guard distance, rear bias and capital preference are in Settings > Broadsides.
  • Radiators and heat (Core/Combat/Radiators.cs). A big ship's reactor, guns and drive build heat, and it sheds it through radiator panels spread out from its flanks (four on a carrier, battleship, command cruiser, gate breaker and cruiser; destroyers and smaller shed what they make through their skin and have no heat to manage). With its radiators whole a ship sheds more than it can make fighting flat out under full burn, so heat never troubles it. The panels are thin sheets out in the open, though, a weak point a single heavy hit nearly takes away, and gunners go for them, the more so on a hull already running hot. A ship that has lost enough of them fills its heat sinks (about a minute and a half of making a full share more than it sheds); past 60% its crew throttles the guns' reloading and the drive, down to 15% at the limit, which holds even a hull with no radiators left short of it. A ship that runs hot instead keeps everything at full and goes past the limit, where it loses hands every second and its guns, drives and shield generators burn out: an AI captain does it only to run from a fight, and at the helm Shift+Insert orders it (again to throttle down). The helm HUD shows the heat, the radiators standing and whether the crew is throttling or running hot. Damage control patches damaged panels like any mount; one shot away stays lost until a yard refits it. The radiators' capacity, the skin's cooling, the heat from the guns and the drive, the sinks, the throttle and what running hot costs are in Settings > Broadsides.
  • Phaser arrays and plasma cannons (Core/Combat/EnergyWeapons.cs). Two energy weapons from the ship roster's tiers (docs/SHIP_ROSTER.md). A phaser array is the versatile medium-range beam of destroyers and cruisers, fitted only to them, on any energy mount (a point-defence mount included), and its captain tunes it in battle by beam shape, every array on the hull at once: a narrow lance (100 damage a shot every 5 s out to 20 km) burns hulls, a wide sweep (16 damage a pulse twice a second out to 6 km) fans out like point defence, taking missiles and fighters first. Insert retunes them while piloting and the captain's line on the HUD shows the tuning; AI captains sweep when two fighters or missiles close on them (or one with no hull in the lance's reach) and lance otherwise. A plasma cannon is the brawler's gun, fitted only to battleships, breachers and gate breakers on a medium or large energy mount (a new class joins the role with EnergyWeapons.Allow): a bolt that does 480 at point blank out to 9 km and bleeds off evenly with distance to a fifth of that at full range, so it pays to close. Phasers draw as amber beams (a lance a long hard line, a sweep a thin flicker) from a flat emitter strip; a plasma bolt is a fat green streak that visibly crosses the gap and bursts as big as what it still carried, from a squat turret ringed with glowing coils. Every figure, the bleed and the AI's tuning are in Settings > Weapons.
  • Sensors and silent running. At the helm you see only what your ship's own scanners hold: an unknown contact is a grey cross, a contact resolved to its class a grey class icon, and only an identified one shows its faction colour and name; a track gone cold fades where it was last seen. The status bar shows your own signature (it jumps when the drive lights) and the contacts held. F3 runs silent.
  • Outfitting. At a shipyard F2 (or Outfit on the market board) opens the ship's hardpoints, its facilities and its free internal space: pick a hardpoint to see every module that fits it, a fitted facility to strip it, or the free space to see every facility there is room for, each priced at this yard's market, and Fit. Prisoners in the brig are handed over there too.
  • FTL drive (Core/Systems/HelmFtl.cs, Runtime/UnitySpaceApp.Ftl.cs). Canon and lore: jumping is impossible inside a solar system's gravity wells. A hull that carries a drive of its own (carriers, battleships and command cruisers with one fitted, and deep-space explorers; cruisers, destroyers, fighters, gunships, couriers, freighters, haulers and breachers have none and are told so, the jump gates being their way, and a battleship stripped of its drive is told a yard can fit one) must first fly out beyond its system's outer rim (the edge of the star's well, 2 AU or more by the FTL settings, the same edge the cruise drives engage at); inside it the HUD says how far out the rim is. Beyond it, put the nose on another star (a running system or one on the charts; never a planet or anywhere else in the same system): the HUD names it and how far off it is. Enter spools the drive for the drive's own charge (six hours for a capital drive, the clock running fast enough to get it over in about eight seconds); the nose must be held on the star, and the charge is lost if it swings off by more than 8 degrees, a fight starts, the hull falls back inside the rim, or Enter is pressed again. Charged, the hull itself (the same ship, cargo, credits and damage, not a copy) and its escorts (those with drives alongside, fighters and small craft docked aboard as far as its and their hangars have room) go out into open space with the rest of the traffic between the stars, the view goes over to the stars sliding by with a caption of the light-years and seconds left, the far system is built out of sight half way, and the hull drops out at the edge of that star's well with the helm back in hand; a plain star on the charts is built into a system to arrive at as it engages. Saving waits until the drive has dropped out. A new kind of destination plugs in as a target source (FtlTargets).
  • FTL physics (Core/Systems/FtlRules.cs). One set of rules for the helm's drive and every group between the stars, each limit in Settings > FTL. A gravity well is where a body's pull is above the gravity well threshold (1.5 mm/s²; a well's radius is sqrt(GM/g): about 2 AU about the Sun, 9 million km about Jupiter, half a million about Earth): no drive engages inside one, a planet's or moon's included, and an arrival drops out at the system's rim clear of every planet's well, to finish under the ordinary drive. A group whose straight run takes it into a star's well on the way, or into a gravity projector's field (a GravityProjector placed in open space, which pulls out everyone but its owner's side), is pulled out at the edge, crosses under its ordinary drive at the interdicted crossing speed (3,000 km/s), and spools again on the far side; new kinds of interdiction plug in as a field source (DeepSpace.FieldSources). Each drive has a spool-up (six hours capital, under three survey) and a cooldown after every drop-out (twelve hours capital, six survey) before it can charge again, and each jump burns fuel: a share of the tanks for the charge (2% capital, 1% survey) and more per light-year (0.2%, 0.1%), so a capital ship's full tanks reach some 490 ly; the helm refuses to spool while the drive cools, short of reaction mass, or inside a well or field, and the HUD says which. FTL carries momentum: the drive flies a straight line, and the hull comes out with the velocity it went in with. The cruise drive top speed (rated a light-year a day for a capital drive, up to 50x in the menu) puts the galaxy's width at some 270 years at the rating and about five at the top: long, but finishable.
  • Interstellar navigation (Core/Systems/FtlNavigation.cs, Runtime/UnitySpaceApp.Ftl.cs, the galaxy map). At the helm of a hull with its own FTL drive, any star or beacon (a void station out between the stars) can be picked as a destination: the one the nose is on, the next out with Page Down (nearest first, Page Up back), or any star on the galaxy map ([), the plain stars on the charts among them, with PLOT FTL COURSE. The course is worked out by the same rules the trip is flown by: the run out to a departure point just beyond the outer rim on the line to the star (flip and burn at the hull's own thrust, or gentler so it burns no more than half the reaction mass the jump leaves), any wait for the drive to cool, the charge, the light-years, each star's well or gravity projector on the line that would pull it out and the time crossing them, the reaction mass in all, and the ETA by the calendar; the HUD shows it with the star marked in the view, the map draws it as a straight line through open space, and a course that cannot be flown (out of range, no drive) says why. End engages the FTL autopilot: it flies the hull out beyond the rim, turns the nose onto the star, spools the drive and engages it, and the crossing carries on as any jump does; End again takes the helm back where the hull is, moving as it was, and a fight, hunters closing or the drives knocked out let go of it too. A long trip is compressed on the sim clock: the run out and the crossing each run at the slowest time warp that gets them over in about the long trip compression (Settings > FTL, 45 real seconds by default, 10 to 600), set again whenever a well pulls the hull out, while the rest of the galaxy moves on with the clock; , and . still change the pace, and the caption gives the ETA date and the real seconds left at it. Saving waits until the autopilot has handed over.
  • Jump gates. Every system's gates sit 5,000 km from its centre, each facing the star it leads to (Sol's Centauri Gate, Alpha Centauri's Sol Gate, and so on). Fly within 300 km of one and press Y to come out at its far gate at once, ship, cargo and credits intact, unless it is shut to you.
  • Model viewer. F9 (or -modelviewer <name> on the command line) shows any ship model on its own for visual checks.

Interface

  • A navigator with a STAR SYSTEMS switcher, then the tree of bodies, fleets, docking rings (with their queues) and everything in orbit: click to select, double-click to focus.
  • A details panel with live distance, light time, vis-viva orbital speed, period, eccentricity and gravity for bodies. For ships, it shows status, speed, ETA, cargo or patrol orders.
  • Selection brackets, hover highlight, an off-screen pointer to the selected target, and the flight path of the selected ship (lanes included).
  • Body panels show each settlement's exports, shortages and defences; ship panels show cargo and trade profit, or hull, shields, lost hardpoints, fighters aboard and orders. M opens a market board, B jumps to the biggest battle and drops to battle time (real time), a ticker reports battles, captures, surrenders, launches, ceasefires, economic shocks and price spikes, and X opens the full news feed.
  • The market board and cargo hold collapse to their title bar with their [-] button.
  • Main menu and profiles. The game opens on a main menu: Continue (the latest save), New Game, Load Game, Profiles, Settings, Help and Quit. Help is a screen of its own that fills the view: every key and control, in groups (camera and god view, helm and flight, combat, trade, diplomacy and the law, fleet and command, screens and panels; Core/ControlsHelp.cs), also opened in game by H or F1 and by Help in the Esc menu (closed at the start). Each profile keeps its own saves and settings; Profiles switches to another or makes a new one, and the Esc menu's Main Menu goes back (with an autosave). -demo, -capture and -continue skip the menu.
  • Settings. Settings (from the main menu or Esc) lists every tunable the game's systems declare, by group (Graphics, Render pipeline, LOD & render budget, Simulation, Economy, Controls, Audio, and more as systems add them), with a search across all of them: the frame rate cap, MSAA, the battle effects budget, the ship model-to-icon swap point and which ship icons are named, the simplified-model, cull and icon-merge points, the starting time warp, freighters per interstellar route, mouse look sensitivity, inverted look, auto-reorient and the master volume so far. Each change takes effect at once and is kept in the profile; Reset puts back one setting, a group or everything found. A system adds a setting by declaring it (Core/Settings/: a ToggleSetting, RangeSetting or ChoiceSetting field in a class marked [SettingsSource]), never by editing the menu. Display keeps its own page.
  • Save and load. The whole simulation saves to a file and resumes exactly where it was: the clock and warp, every system's world (ships and their cargo, holds, tanks and loadouts, battles in progress, markets, factions and treasuries, wars and sieges, wrecks, escape pods and prisoners, the law's records and bounties, adventures and reputation), the gates and the traffic between the stars, and the ship you were flying, moving as it was. F5 quicksaves and F8 loads the quicksave; F6 (or Save / Load in the Esc menu) opens the saves: New Save makes another of your own, as many as you like, and each save, the quicksave and the three autosaves show where and when they were saved, who was flying and their purse, with Save to overwrite, Load and Delete. An autosave is taken every five minutes and when the app closes, the oldest of the three making way; -continue resumes the latest save. Each player profile is a folder in %USERPROFILE%\AppData\LocalLow\MindAttic\Unity.SpaceGod\Profiles (the one in use is named in current.txt, Default until another is chosen): its saves are in Saves, and its settings are one settings.json in the shared MindAttic format from Unity.Shared (the common block every MindAttic game shares, and the game's own under game: the display, and every declared setting changed from its default, by its key). A profile from before that, with a file per setting in Settings, is moved into settings.json on the first run and the old folder kept as Settings.old.
Carrier group in formation Freighter mid-burn Saturn
SFS Resolute carrier with escorts parked above Earth A Kenney freighter with its engine plume lit, burning toward the Moon Saturn with ring structure, the planet's shadow on the rings, and Titan

Quick start

Prerequisites:

  • Windows and Unity 6000.4.3f1 (via Unity Hub).
  • MindAttic.Capture cloned next to this repo: Packages/manifest.json loads its Unity package from ../MindAttic.Capture/unity/com.mindattic.capture.
  • Unity.Shared cloned next to this repo too, for the player profiles: Packages/manifest.json loads it from ../Unity.Shared/unity/com.mindattic.unity.shared, and the core tests compile its engine-free core from there (set UnitySharedDir to build them from a checkout elsewhere).
  • Optionally the .NET 10 SDK, to run the core tests.
git clone https://github.com/mindattic/Unity.SpaceGod.git
git clone https://github.com/mindattic/MindAttic.Capture.git
git clone https://github.com/mindattic/Unity.Shared.git
  1. Open the Unity.SpaceGod folder in Unity Hub. The first import takes a few minutes. The editor opens Assets/Scenes/UnitySpace.unity automatically (or use Unity.SpaceGod > Rebuild Main Scene).
  2. Press Play. You start in free swim beside Earth, with Earth selected, gameplay scale on and the clock at the current date. The controls panel is open; H hides it.

Any scene works, because Bootstrap creates the app if the scene does not have one.

Building and deployment

In the editor, Unity.SpaceGod > Build Windows Player builds Builds/Windows/Unity.SpaceGod.exe. Headless, with the editor closed:

Unity.exe -batchmode -quit -projectPath . -executeMethod Unity.SpaceGod.EditorTools.ProjectSetup.SetupAndBuild

Building never rewrites Assets/Scenes/UnitySpace.unity: it is generated by ProjectSetup.CreateScene only when it is missing, because Unity gives every regenerated object a fresh file ID and a rebuild would leave a no-op diff in git. If you change what CreateScene puts in the scene, run Unity.SpaceGod > Rebuild Main Scene and commit the scene with the code change, or the player keeps the old one.

tools/deploy.ps1 does a clean build and publishes it: it stops any running copy, deletes Builds\Windows (never Library\), builds in batch mode with the Unity version from ProjectSettings/ProjectVersion.txt, and copies the player to C:\Apps\Unity.SpaceGod\. Add -Launch to start it afterwards.

powershell -ExecutionPolicy Bypass -File tools\deploy.ps1

deploy.bat at the repo root runs the same script and also refreshes a Unity.SpaceGod shortcut on the Desktop that starts the published copy. In Claude Code, /deploy starts deploy.bat in its own window and /run starts the published game. A prompt hook (.claude/hooks/instant-commands.ps1) handles both before any model turn, so the orchestrator's pace holds never apply to them.

tools\launch.bat (or tools\launch.ps1) always redeploys first, then offers Normal Play, Demo + Capture (-demo -capture video screen 5) or Quit.

Muted launches

Development launches are silent. tools\launch.ps1 (every menu choice) and the /run hook start the game with -muted and MINDATTIC_CLI_MUTED=1, which turn on Unity.Shared's session mute before the first scene loads; SessionAudio then holds AudioListener.volume at 0, even when the profile's master volume is applied. The mute lasts that run only and never changes the saved master volume or settings.json. Pass -Sound (tools\launch.ps1 -Sound) to launch with audio. The Desktop shortcut and a plain double-click on the exe play sound as usual.

Command line

Flag Result
-demo plays the scripted camera tour once (inner system, ships, Saturn, Earth at both scales, Jupiter, docking rings, Alpha Centauri, real surfaces, battles and three staged combat showcases), then quits
-modelviewer <name> opens straight into the model viewer on that ship model from Resources/Ships
-continue resumes the latest save (quicksave, slot or autosave) instead of starting at today's date
-capture ... records the session through MindAttic.Capture (below); independent of -demo

Screenshots and video come from MindAttic.Capture (needs ffmpeg on PATH). Capture is compiled into capture-enabled players only: build one with MindAttic > Capture > Build Windows Player (Capture Enabled) (Builds/Capture/Unity.SpaceGod.exe, or headless with -executeMethod MindAttic.Capture.Unity.Editor.CaptureBuild.BuildWindows). Capture is off unless -capture is on the command line.

Command Result
Unity.SpaceGod.exe -demo -capture screen runs the tour once, saves a PNG at each stop and quits (how the images above were made)
Unity.SpaceGod.exe -demo -capture video screen 5 the tour, filmed, with a PNG every 5 seconds as well as at each stop
Unity.SpaceGod.exe -capture video films the session from start to exit at native resolution
Unity.SpaceGod.exe -capture screen 5 a PNG every 5 seconds until exit

Everything goes to R:\MindAttic\Capture\Unity.SpaceGod\; each tour screenshot's .json sidecar names the stop it shows ("tag": "03-carrier-group"). In the editor, the MindAttic > Capture menu records video or screenshots in Play Mode, and F12 takes a screenshot.

Controls

Action Input
Swim W A S D
Down / up Q / E, or C / ]
Boost / fine Shift / Ctrl
Look (free) or orbit (focus) Hold right mouse and drag
Swim speed (free) or zoom (focus) Mouse wheel
Select Left click (double-click to focus)
Focus on selection / re-frame F
Back out one step: close the open panels, leave focus, deselect; then the pause menu (Resume, Settings > Display, Quit) Esc
Whole-system view Home or Backspace
Toggle gameplay / realistic scale G or Backquote
Planets: 0 Sun, 1 Mercury to 9 Pluto (in Alpha Centauri: A, B, Proxima, its planets, the stations) Number keys (press twice to focus)
Cycle ships Tab (Shift+Tab backwards)
Time warp slower / faster , and . (or - and =, or numpad - and +)
Pause: time eases to a stop, and eases back up when pressed again Space (or Pause)
Reset to now T
Orbits, labels, the Help screen O, L, H (or F1)
HUD panels and readouts off / on (the names and markers on the view stay) U
Clear the screen: every bit of UI gone, in the strategy view and at the helm, but the reticle in use (the helm's aim, a seat's sight); again to bring it all back as it was (opening a panel brings it back too) F11
Market board M
Watch the biggest battle (at battle time) B
Hyperlanes on / off N
Satellite constellations on / off K
Level the view to the system's plane (smooth swing: the ecliptic in Sol, the A–B orbit in Alpha Centauri) R, or the LEVEL button
Fly to another star system Navigator, STAR SYSTEMS (Esc skips the trip)
Galaxy map: territory, gate traffic, fronts, blockades, raiders; click a star to inspect, double-click to travel [ (left bracket), or GALAXY MAP in the navigator ([ or Esc closes)
Pilot the selected ship / hand it back P
Spawn and pilot any ship class V
Take charge: the seat in the fight in view nearest the middle of the screen, then the next / previous seat (a ship's helm, a fighter's or bomber's cockpit) ' / ;
Man the next gun on the hull flown or selected (past the last, back to its helm) /
In a fighter: strafe, roll, afterburner, flight assist A/D Q/E, Z/X, Shift, F
In a fighter: guns, the second trigger's weapon group, next group left mouse, right mouse, 1
In a fighter: lock the hostile nearest the crosshair (again for the next), next weak point on the locked hull, flares T, 6, Ctrl
In a fighter: wing orders (attack my target, cover me, form up, engage at will) 2 / 3 / 4 / 5
In a fighter: power to weapons / shields / engines, even power 7 / 8 / 9, 0
At a capital ship's helm, to the arc looked toward: battery order (at will / hold fire / volley); gunners focus the weakest shield patch or spread fire 1, 2
At a capital ship's helm: brace, damage control focus, all batteries at will 3, 4, 0
At a capital ship's helm: the line into line ahead / line abreast / echelon / screen, engage at will 5 / 6 / 7 / 8, 9
Piloting a hull with phaser arrays: retune them, narrow lance / wide sweep Insert
At a big ship's helm: run hot (guns and drive at full past the heat limit) or throttle for the heat Shift+Insert
At a capital ship's helm: roll the weak shield patches away from the heaviest fire (again: the roll is yours) Shift+Delete
Hand any seat back to its AI and return to command P
Piloting, a fight aboard your hull or one your marines are in: boarding panel; then pick a compartment, push for it / muster on it, hold, auto-resolve B; 1, 2, 3, 0
Model viewer F9
Quicksave / quickload F5 / F8
Save and load slots F6
Display: resolution, windowed / borderless windowed / exclusive fullscreen, VSync (nothing changes until Apply; Keep within 10 seconds or it reverts; kept settings are used at startup) Esc, Settings, Display
Every other setting, by group or by search, with Reset Esc, Settings

While piloting:

Action Input
Steer Mouse
Pause menu (P, not Esc, hands the ship back) Esc
Throttle / strafe / rise and sink W S / A D / E Q
Roll Z X
Flight assist on / off F
Boost Shift
Cruise drive Hold J
Fire forward guns Hold left mouse
Lock a target T
Cargo hold I
Outfit the ship F2, at a shipyard (or Outfit on the market board)
Silent running on / off F3, while piloting
Bounty board F4, for the selected world's port (or the one you are alongside)
Your fleet F10: buy hulls and property at the port in view, hire captains, step their orders (using the selected world or ship)
Trade desk \ (backslash): runs, brokers, trade news, charters, insurance, warehouses, and the back door of the port you are alongside
Contracts board F7, for the selected world's port (Take while alongside it; Abandon your own)
Buy and sell crates M, near a settlement's world
Refuel M, near a settlement's world (Refuel), or CALL A TANKER when the tanks are low
Activate a jump gate Y, within 300 km of it
Spool the FTL drive for the star the nose is on (again to call the charge off) Enter, beyond the system's outer rim, at the helm of a capital ship or explorer
Plot an FTL course to the next star or beacon out (nearest first), or the one before Page Down, Page Up, at the helm of a capital ship or explorer (or pick any star on the galaxy map, [)
Engage the FTL autopilot for the plotted course, or the star the nose is on (again to take the helm back) End
Clear the plotted FTL course Delete
Answer a hail in battle 1, 2, 3

Project layout

Assets/UnitySpace/
  Core/                 engine-free simulation (compiled by Tests/ as plain .NET)
    Kepler.cs             Kepler's equation, perifocal to ecliptic, vis-viva
    OrbitalElements.cs    JPL-style elements with secular rates
    LunarTheory.cs        the main terms of a lunar theory for the Moon
    BodyCatalog.cs        physical and orbital data for 26 bodies, with sources
    Ephemeris.cs          positions at any Julian date, orbit sampling
    Lagrange.cs           L1-L5 of every body pair (restricted three-body problem), Trojan lead angles
    ScaleModel.cs         realistic / gameplay mapping and its inverse
    Fleet.cs, Ships.cs    ship classes, factions, schedules, flip-and-burn and transfer-orbit transits, launch windows, lane journeys
    Trajectories.cs       universal-variable propagation, Lambert's problem, Hohmann transfers and windows, patched conics
    Hyperlanes.cs         lane network, ramps, curves, routing
    World.cs              factions, settlements, ships; advances fleet, markets and wars together
    Systems/              Alpha Centauri, the Galaxy of star systems, nearby stars, the jump-gate lattice and the traffic across it
    Infrastructure/       orbital yards, factories, habitats, real spacecraft, constellations, docking rings
    Economy/              goods, recipes, settlements and markets, trade planning, propellant (the rocket equation), the player's cargo hold
    Combat/               hardpoints, outfitting, battles, fighters, boarding, morale and surrender, wrecks, war, diplomacy, piloted flight
    Sensors/              signatures, scanner suites and the contact pictures every faction and the player's ship hold
    Information/          light-speed delay and the news between systems: gate relays, ships' data cores, stale market boards
    Persistence/          save and load: the object-graph writer and reader, the save file and its slots
    Settings/             the settings registry: declared tunables, grouped and searchable, kept per profile
    SimClock.cs           Julian-date clock and time warp
    BodyOrientation.cs    IAU prime meridians and parent-facing moons, so maps face the right way
    GasGiantWeather.cs    zonal wind profiles and the Great Red Spot's position
    AsteroidField.cs      111,267 SBDB asteroids, Kepler propagation (CPU and GPU-mirror)
  Runtime/
    Bootstrap.cs          creates the app in any scene; -demo starts the tour
    UnitySpaceApp.cs     frame loop, floating origin, picking, ship placement, piloting
    SceneTour.cs          the scripted camera tour; CaptureRunner.cs runs it for -demo
    ModelViewer.cs        the F9 model viewer
    Camera/SpaceCamera.cs free swim, focus orbit, fly-to, SOI reference frames
    Camera/StarTravel.cs  the camera's trip between star systems
    Views/                bodies, ships (hardpoints, damage, wrecks), fighters, battle effects, hyperlanes, starfield
    Rendering/            procedural meshes and ship hulls, ship models and thumbnails, materials
    Rendering/Pipeline/   the render-pipeline layer (RenderBackend) and its URP backend (Urp/)
    UI/                   HUD and procedural icon sprites
    Input/InputState.cs   every key binding in one place
  Resources/              shaders, colour maps, ship models
  Editor/ProjectSetup.cs  scene generation and player build
Tests/
  UnitySpace.Core/       builds Core as a plain .NET library
  Unity.Shared.Core/      builds the Unity.Shared package's engine-free core (profiles) for it
  Core.Tests/             NUnit tests over Core (dotnet test)
tools/                  deploy.ps1, launch.ps1, launch.bat
docs/                   USER_STORIES.md and the README images

Tests

cd Tests/Core.Tests
dotnet test

1214 NUnit tests, run in parallel in about ten minutes, cover the following:

  • Kepler solver accuracy up to e = 0.97
  • Earth's distance and heliocentric longitude at J2000
  • Planet periods
  • Lunar perigee and apogee, and the Earth-barycentre offset
  • Every moon's position against JPL Horizons, and the Moon (lunar theory), Phobos, Charon, Ceres and Earth checked at five dates across 2000-2050, and the belt asteroids Psyche, Lutetia and Ida at two dates in 2027
  • Moon spin sense
  • Math helpers: angle wrapping, sexagesimal conversion, smoothstep and vector operations
  • Scale-model monotonicity, invertibility and surface continuity
  • No overlapping gameplay orbits
  • Fleet continuity across every departure and arrival
  • Brachistochrone timing, and intercepts meeting the moving target
  • Velocity matching at departure and arrival
  • Transits at gameplay scale leaving and joining parking slots exactly, never jumping, and staying out of the bodies at their ends
  • Body orientation: Greenwich against sidereal time, synchronous moons facing their planet, Pluto's 0° meridian on Charon, map-north conventions
  • Great Red Spot longitude against the JUPOS track, and wind profiles (anticyclonic shear around the spot, retrograde rotators)
  • Asteroid positions against JPL Horizons (Vesta, Pallas, Hektor), the GPU propagation path, Kirkwood gaps at 3:1, 5:2 and 7:3, both Trojan clouds, and the shader's scale mapping
  • Economy: every good produced in roughly the amount used, prices rising with scarcity, two years of trade with nobody going hungry and most traders in profit, traders only docking where welcome
  • Economy internals: market pricing and its clamps, the production tick and limiting inputs, population growth and decline, trader cargo choice and booking
  • Combat: the stronger group winning and hardpoints taking the damage, reactor and shield-generator losses, hardpoints sitting on the hull, shield emitters covering their own patch of hull, coarse steps at high warp, and two years of war with battles, losses and a working economy
  • Weapons: railgun and gun rounds' travel time, lead and size-dependent misses
  • Salvage: latching only alongside with velocities matched, what a derelict is left with (cargo, stores, survivors, raiders aboard), fighting through raiders before anything is taken, the grid hold filling, stripped parts fitted or scrapped, claiming a flyable hull with a prize crew, a live derelict lying where it was taken, and the adventure on a hulk seen through only by working it
  • Outfitting: hardpoints from each design and facilities in a limited internal space (a hull too small for a facility cannot fit it, facility kinds plug in as data, the boarding interior is built from them), modules only where they fit (a railgun only bearing on the bow), materials bought from the yard's stock at its prices and the old part sold back, a yard short of a material or an owner short of credits fitting nothing, hardened shields, armour plate (and the delta-v its mass costs), torch drives, racks that enlarge both holds and cannot come out full, scanner reach, the brig's prisoners and their bounty, damage and crew carried through a refit, and navies and raiders upgrading their warships at their own yards
  • Wrecks and surrender: lasting wrecks with salvage and expiry, hulls striking their colours, ransom, prize-taking and pirate cargo demands
  • Escape pods and crews: pods fitted per 20 aboard, more escaping a slow death than a reactor going up and nearly all a scuttling, the pods launched where the hull died and drifting off, a battle's fighter pilots in one cluster, rescue paid by the owners with the crew back in the pool, pirates' hostages ransomed (or pressed into service when nobody pays, or freed when their haven falls), prisoners going home at a ceasefire, raiders' pods giving their haven away, pods lost when their air runs out, only ships at the pods' body (not the player's, not one in a fight) finding them, yards that cannot crew a hull laying none down, recruiting up to the reserve, morale falling with deaths, the pod adventure (picked up alongside, lost to someone else or to the air running out, held for ransom by a pirate pilot, raiders handed to the hunters), and five months of the live system with pods rescued, taken and lost
  • War and diplomacy: siege length and port capture, symmetric relations, docking rules
  • Economic shocks: a mine accident cutting output until it clears, a worked-out seam cutting a mine for good and a new strike after repeated cuts, a blight spoiling food and raising its price, a strike when wages lag prices (industry stops, life support runs, a raise settles it), rationing at war that lifts with a ceasefire, a besieger's blockade shutting a port to every ship, an embargo on a neutral running war goods to the enemy that lifts with the war, price spikes reported once with their cause, and a year of the live system with shocks on their own and nobody starving
  • Pirate havens: the hidden belt havens found by scanner range, by trailing beaten raiders or by a parked warship's sweep, the garrison and raiders blocking an assault, boarding (goods seized) or destroying a haven, its raiders lying low until it is rebuilt, a navy assaulting a haven it has found, and new bands sailing only from standing havens
  • Patrol wings and commanded combat: dozens of patrol hulls in Sol (light and heavy fighters, destroyer wings) on beats of their own navy's ports that between them cover every port, wings never merged, sent away or made the home guard and ordered only to patrol, defend, hunt or repair on their beat, a wing going to defend a threatened port on its beat, enemy groups passing on open ground without a fight until one is ordered to attack there, and a raider running the player down only on the ground it is ordered to raid
  • Gate breakers (U.SPC-T478): the most heavily armoured hull with more hull than a battleship and slower, plasma cannons its only guns besides point defence, two boarding shuttles, a barracks and a siege engineering bay that only it has, its own FTL drive, its captain picking a gate's fort over anything else (and not at a player's helm), its teams storming a silenced gate the first day with its forts and defenders gone and taking it intact with its sabotaged ring made whole while a fleet without one takes a damaged gate as it is, no storming with too few marines aboard or the hull sunk, and a navy at war (never at peace, never raiders) wanting one while it has none
  • Corvettes (U.SPC-T476): a small patrol hull with no FTL drive, deep tanks for its size, a search suite twice a warship's and guns that bear, never leaving its home system by drive, gate, helm or a carrier's clamps; every navy's corvettes stationed one to a port at its most populous ports in Sol with beats of its own ports that run down the hyper lanes, patrolling out down each lane in turn and back to its station; a clan's smuggler seen round its home planet run down and fought there, a raider at a port on its beat defended against; three weeks on, every corvette still in Sol on its ground, never merged, sent through a gate, made the home guard or given an objective; a lost corvette replaced at its port at its navy's expense after fifteen days, and one whose port changes hands posted to another
  • Supply convoys and local traffic: each navy's escorted convoys running naval stores round its own ports and going on round their run rather than turning aside to fight (to a yard when hurt); Sol's buses, taxis and 1-, 4- and 6-seat personal craft, unarmed, untrading and off the fuel markets, scaled to each port's people, keeping to their own planet's neighbourhood for days of flying, buses calling stop by stop round their lines, and none swept into a fight or flying into one
  • Raider doctrine: a band's nerve growing with a mark's worth, a juicy escorted mark taken where a poor one is left, a civilian left alone unless it pays well or carries a VIP, raiders aiming for shields and engines and never a merchant's reactor, holding fire on a disabled merchant and demanding its cargo, the crew jettisoning it and going free, the band withdrawing from the escort once it has the cargo, a refusal answered with the guns, a destroyed merchant drawing heat on its clan, and a navy sending a group to hold its gate against raiders lying off it
  • The strategy layer: a build plan setting what the yards lay down and how big a navy they keep, a production focus favouring its industries, research accruing from a polity's people and paying off, and fleet groups taking, holding, blockading, escorting and exploring on command, one squadron, a system's groups or the whole navy, carried on under an heir and sent through the gates to an objective in another system
  • The diplomacy game: a deal weighed the same for the envoy and the answer, a trade pact paying both, a non-aggression pact keeping a war off until it is broken, an ally called to arms in defence only and standing down at the peace, tribute moving money, stirring the payer's people and defaulting, a demand weighed on power, proposals to the player's state waiting for an answer, a vassal paying its levy and following its overlord to war, peace agreed when the war has gone on, the AI signing with states it likes, the envoy's read of every deal, and a hail answered by how they stand with you
  • Fighters: launch, attack runs, guns and torpedoes, a loose formation that breathes, lead succession, and landing back aboard
  • Boarding: fighting through to the bridge and engineering, a small party repelled, vacuum killing crew only until the bulkheads seal, pods bouncing off shields and boarding once they are down, a Breacher round fired from an assault bay drilling in and its team taking the ship (and missing a hull that jinks aside, or glancing off raised shields), lining up alongside a disabled ship, the player's boarding orders (boarders sent for a compartment or dug in, defenders mustered or holding, auto-resolve running the fight exactly as the resolver alone, orders lapsing once the player leaves), and a year of lane ambushes and prizes
  • Hyperlanes: every system reachable, lanes clear of the Sun, trips taking a day or two instead of weeks, continuity across every leg change, and drawn lanes meeting the burns at the ramps; the piloted hull flying in through a ring gate, riding the lane AI traffic rides, coming off at the far ramp or carrying on along another lane from right where it is, handed back to the fleet mid-ride, and a ride of hours warped to under a minute; a raider's field ahead picked up as it comes into the scanners' reach with a countdown that matches the pulse, the pulse throwing the piloted hull out stunned into a fight on the lane it flies, a warship that makes out the hull braced, a surge speeding the rest of the ride without a jump, slipping the pulse or caught anyway, and dropping out short of the field to stay clear and get back in where it left; a ring chain evenly strung and flown through in order, sped up then braked; a spur per gate in every system with a network, joined only by flying through its ring the right way, ridden to within range of its gate, and picked up again at the far system's spur after the jump
  • Alpha Centauri: the A–B separation (11.2 to 35.4 AU), period, barycentre balance and 2035 periastron; the orbit's 79.2° tilt to the sky; Proxima where the sky puts it and its planets' periods; the Sun in Cassiopeia as seen from there; lanes connecting every port and clearing all three stars; two years of trade, raiding and nobody starving; every system on one clock
  • Nearby systems: every planet keeps its catalogued period, axis and eccentricity (periapsis and apoapsis traced, the orbit closing after one period); every star its mass, size and light; the binaries balanced on their barycentres, swinging a(1 ± e) apart, at periastron on the catalogued date and tilted as measured; spot checks against the Exoplanet Archive; candidates labelled; habitable-zone flags (Proxima b in, Barnard's planets out, the Sun's zone 0.98–1.69 AU); Epsilon Eridani's belts and Tau Ceti's disc; each system at its parallax distance; a quiet year in every unsettled system
  • Avoidance: head-on ships passing wide, ships sharing a spot spreading out, a month of the whole system with no near-collisions, free ships roaming, a mid-flight course change keeping position and momentum, and merchants turning aside from fresh battles
  • Lagrange points: the collinear distances against Horizons' percentages and the Hill radius, all five points equilibria in the rotating frame for any mass ratio, Sun-Earth L1, L2, L4 and L5 and Earth-Moon L1, L2, L4 and L5 against JPL Horizons, every pair's points in their places, the depots, relays and gateways at their points, and Jupiter's L4 and L5 structures staying co-orbital (60° ahead and behind, at Jupiter's distance) for four years
  • Jupiter Trojans: Hektor, Patroclus and Eurybates against JPL Horizons on two dates, and each staying in its swarm 25-100° from Jupiter across 2020-2035; the Greek camp's mines, their lanes and the hidden haven on Patroclus with no lane to it
  • Infrastructure: rings staying over their cities (latitude and longitude to a millionth of a degree, velocity = ω × r), including a ring over a world that keeps one face to its parent built before the ephemeris has a date; FIFO queues clearing at most one ship per interval; no position jumps through queue, descent, landing and climb; only merchants landing; yards launching from their slips; constellations at their real altitudes and inclinations; JWST at L2
  • Piloting: Newtonian flight (momentum conserved with no thrust, a burn changing it by exactly its impulse, drift and turn-and-burn with flight assist off, assist settling on the commanded velocity without overshoot, rolls, gravity close to a world and a hull too weak for it settling on the surface), cruise spooling up and dropping out, collisions (capsule and sphere volumes, a fast pass caught between frames, momentum conserved in rams and scrapes, a station or a pinned body holding still, energy going as the square of the closing speed and damage with the energy, light hulls wrecked and heavy ones marked, the struck side's hardpoints and shields taking it, hard landings, a kill in battle and a wreck left outside one), forward guns firing only on the trigger, the piloted hull staying where the pilot loop puts it; per-family flight models (every class in a family, a new model plugging in for its family alone, the families without a model of their own flying exactly as before, and the light fighter carving through a break where the Newtonian hull slides, holding its track to the nose at the corner speed, turning wider under boost and strafing harder)
  • Propellant: every design's drive and tanks, delta-v budgets by Tsiolkovsky (a full hold shrinking them), burns throwing out what the rocket equation says, a flip-and-burn costing its acceleration times its flight time plus the velocity match, transits charged their delta-v at the ship's mass, a short ship waiting in port, running dry (or holed), drifting, calling a tanker and carrying on, a change of course refunding the leg not flown, refuelling buying the cheaper reaction mass and its helium-3 and showing up as market demand, trades left out when the tanks cannot cover them, runs priced by their propellant and lane tolls, lane tolls going to the ramps' keeper, two months of the live system with tanks kept up, hand-flown thrust paid for and a dry hull coasting, and dry ships' distress calls answered with a propellant transfer
  • Trajectories: Hohmann transfer times and burns against the textbook (Earth to Mars in 259 days on 2.94 and 2.65 km/s, LEO to GEO in 5.26 hours on 3.89), Mars windows every 780 days with Mars 44.3° ahead and the wait to the next one, universal-variable propagation against Curtis's example 3.7, Kepler's equation and running backwards, the Lambert solver against Curtis's example 5.2 and sixty random arcs (short and long way, elliptic and hyperbolic) that land on their targets, Lambert half a turn round reproducing the Hohmann transfer, Earth's and Mars's spheres of influence, the 3.6 km/s escape burn from low orbit, escape and capture hyperbolas leaving and arriving along v∞, gravity losses, a freighter flying a coasting transfer from parking orbit to parking orbit with its drive lit only at the ends, a courier keeping its flip-and-burn and paying its gravity correction, cheap freight to Mars on a patched conic with continuous handoffs, a slow boat that just missed its window waiting for the next, urgent cargo paying for speed, and the living system's haulers on transfer orbits while warships flip and burn
  • Cargo hold and trade: crate footprints and rotation, no overlaps or out-of-bounds placement, buying and selling at the AI's prices and taxes, docking rules
  • Sensors: signatures (burns and weapons fire bright, silent running dim but not a burn, hulks cold, a landed ship hidden, bigger hulls warmer), contacts resolving from a blip to a class to an identity as they close (at once by transponder), scanner suites reaching further and resolving finer, the player's picture holding a cold track and losing it after the hold, a faction knowing only what its ships and stations saw (a merchant at Earth by its transponder), a navy tracking a raider to a hidden haven, a merchant's haven sweep reaching less than a warship's, a fight witnessed further off than something dim, a lurking raider caught by a warship's, an escort's or a scanner suite's sensors but not a merchant's, and silent running slipping past a patrol at a distance where going dark mid-scan is running from it
  • Information lag: light taking 499 s an AU, a contact seen where it was by exactly the light time across the gap, a navy at Jupiter hearing of raiders at Earth only a light time later and still acting on the old look after they have slipped away to Mars, the relay's lag between systems (light to the gate, the crossing, light in from the far gate) and a blockade sending it the long way round, a ship through the gates carrying the news and its headlines (older news never overwriting newer), and a freighter setting out on a stale report of a far shortage that the real market no longer has
  • Law: jurisdictions (worlds, lane keepers, lawless havens), witnesses in sensor range or none, a recorded crime's notoriety, standing and bounty, lawless space falling to the victim's faction, notoriety fading and bounties lapsing, piracy charged to the raider captain with the bounty on their head, nothing recorded with no survivor or witness, war and self-defence exempt but an attack at peace an assault, ransom as piracy, hunting a wanted ship lawful, the patrol enforcing the law exempt and a captured wanted ship's bounty collected, docking refused and fines paid, standing moving prices, contracts withheld, stolen goods from a haven refused at lawful markets, a patrol's scan confiscating contraband, running from a scan, the order to heave to paid off or ending in an interdiction, trespass, and the player opening fire on a lawful ship
  • Trading companies: every merchant hull in Sol and Alpha Centauri owned by a named company with a home port, its own livery and standing (shunned by its flag's enemy), its hulls' profit booked to the company less running costs and tax, a hull ordered at its home yard when its fleet's earnings pay one back and the yard building it on the company's money and delivering it, a navy at war worn below strength building its warships first, none bought when hulls do not pay or the reserve is short, routes chosen by profit a day (a losing run never, a cross-system run recognised), captains never planning a run to a faction that shuns their company, deliveries raising standing, a company deep in debt selling hulls to the breakers and going bankrupt, one in debt too long wound up with hulls left, a bankrupt's hulls going to a rival that can use them, a struggling company bought out by a friendly rival but never by an enemy's, new companies founded at the busiest port without one only when the trade pays, and three hundred days of the live system with every merchant launch a company's order
  • Outlaws: every raider captain on the books with the adventures' name, a flagship and a haven, kills, robberies and ransoms going on the record and on the bounty, a captain killed or taken finished but kept, the boards listing whom each owner wants with last-known position (and never a hidden haven), daily sightings, a feared name after 120 days (bounties up by half, crews breaking sooner), hunters taking only contracts they can match and going where the target was seen, collecting every bounty on a kill at the dead rate, and moving on the wanted player but never on one who is not, and half a year of the live system with records built, boards filled and hunters at work
  • Holdings: buying a hull (the account debited, the yard paid, the house flag, laid up without a captain), refusing what the account or a haven cannot do, enlisting a ship and its cargo, a trade route worked stop by stop (and rejoined from off it), a patrol's round, a mining claim's free holdful and its cutting time, an escort shadowing its charge and standing down when it is lost, losses on the books, trade takings into the account, daily wages and a captain walking off unpaid, captain skill, station-share dividends and a seized share, a warehouse's stock and rent, and five months of the live system with a trader and a miner earning their keep and the books balancing to the credit
  • Trade desk: a port's risk from raiders, a blockade, an embargo and collapse, price sheets as snapshots that age and an older report never overwriting a newer, captains in port reporting their markets daily, runs ranked from the sheets (sized to what the far end wants, scored down when stale or closed), a broker's sheet of every known market paid to the port's owner and none at a haven, companies posting charters at a hire over a hull's running cost, a chartered hull free trading for its charterer who keeps its takings and pays the hire daily until it comes back to its orders, the wrong class, a captainless or chartered hull refused, a recall's penalty, a charterer defaulting, a hull's premium paid daily and its claim paid on its loss, premiums climbing with the risk, a seized warehouse paid out, a blockade run's premium relieving the port, customs seizing contraband and charging smuggling, no back door at a haven, the rank rising with what the house is worth, and the trade news
  • Belt mining: rocks captured, ground and separated with every tonne accounted for, elements in proportion to the rocks (platinum a trace, no manufactures), convoys timed by the real distance and filling the warehouse, a shipyard built only from its own builder's warehouses and handed to its world when done, a finished Dyson ring laying down the next, convoys robbed far more often than warehouses raided, escorts and guards cutting the risk, the plunder going to the raiders, and Sol's belt works running in the live system and through a save; ore tugs as a hull with claws and no hold, load mass governing their acceleration, rock pushed in to the grinders and ice melted at the depot with every tonne counted, big loads only on a heavy lane and far quicker there, tugs and loads seized by raiders (less under escort), and Sol's tugs pushing ice along the Ceres-Jupiter heavy lane and through a save
  • Contracts: freight posted only for a market actually short of a good, from a port with it to spare and never twice for one need, none for a well-stocked market, offers expiring untaken and coming down once the shortage is filled, a taken contract failing past its deadline, pay rising with distance, danger and urgency, the player signing at the board, handing the lot over and being paid by the patron with standing up, abandoning costing standing until the patron offers nothing, a merchant buying the lot, keeping it from other markets on the way and delivering it, cargo gone elsewhere failing the contract, passengers and colonists posted from real migration and actually moving, free ships surveying unvisited bodies, a patrol posted over a port that has seen fighting and flown by a hunter, a bounty on the law's books posted at the poster's port, and a month of the live system with the boards filling and captains working them
  • Alive or dead: hunters sailing with a brig, a boarded flagship's captain locked in a berth and handed over for the full price at a port that pays (and on its own when a hunter lies there), ransom freeing them still wanted, a breached brig letting them go, hunters holding fire on a disabled quarry, the player's kill paying half only once the wreck is scanned and lapsing if it breaks up first, a captain ejecting still wanted and taken by whoever tractors the pods in, lost with pods left alone, freed by raiders to command the next band, and breaking out of a dying hull's brig into its pods
  • Adventures: each kind offered only from real sim state (a ship actually in a fight or adrift, a derelict, a wreck with salvage, raiders lurking on a lane past the danger threshold, a merchant on a dangerous lane with time left, a raider captain), within range, never twice at once, capped, rested after it ends; ignored ones failing at expiry or when the situation settles without the player; completed ones paying credits, cargo and standing; and twenty days of the live system where every offer traces to something real
  • Jump gates: a gate pair per link at each system's outer edge, activation range, arrival inside the far gate, and the ship moving between fleets
  • Save and load: a world saved and loaded byte for byte the same, then both run on for 20 days in step; the whole galaxy saved to a slot mid-battle and loaded with the clock, the warp, the pilot's ship, purse, reputation and motion, its battles still reporting to the loaded war, then both run on for 10 days in step; the loaded world wired to itself (its callbacks point at its own parts) and still sharing the static ship designs; autosaves taking turns over three slots, the slots listed newest first, and a file that is not a save refused; and the graph writer's shared references, cycles, comparers, queues, stacks, grids, nullables, boxed values, empty arrays, delegates and random number state
  • Gate network: a sparse, connected lattice linking each system to its nearest, gates facing their partners and owned by each system's power, crossing time growing with distance, routes going round a blockade and never through an enemy's gate, the distance markup deciding whether a cargo pays, a freighter selling its goods in the other system's markets, a survey ship crossing several gates and coming home, raiders getting a gate shut behind them and a navy sent after them, a ship turning for another gate when its own shuts, and a year of traffic with every ship somewhere real
  • Continuous interstellar flight: galactic positions holding a millimetre fifty thousand light-years out and two neighbouring systems' frames agreeing there, sector carries and round trips, which hulls carry which cruise drive and a new one registered, a cruise's speed profile (charging, ramp, cruise, a hop too short to reach speed) and its trip slower than a gate's and finishable across the galaxy, the FTL settings, a group flying the line between two stars and dropping out at the near edge of the far well, an arrival forty thousand light-years out placed to the metre, hostile groups meeting head on and the beaten left as wrecks, raiders robbing a laden hull and letting it go, a passer stripping a wreck and losing the time, a group between the stars saved and carried on, a warship sent from Sol by its own drive engaging at the well's edge and flying into Alpha Centauri, a survey hull going to a star nobody simulates and coming home, and a hull with a drive going round broken gates through open space while a freighter cannot
  • Life in deep space: a route seeded the same whichever way it is first flown, richer off the gate network and empty in a bare galaxy, a new kind of feature registered, the default galaxy's relays and listening posts and the news coming by relay with Sol's gates down, a rogue planet's well pulling a group out of FTL, groups unseen to each other inside a nebula, a survey hull paid for a find and a plain star's first survey, a group short of reaction mass mining an ice body, a distress call answered for its survivors' bounty, a lure robbing a trader and beaten off by a warship, a call nobody answers falling silent, a listening post hearing an enemy and a clan warship knocking one out, a band lying in wait pulling a passer out with its projector and robbing it, a navy picket going out to its station and coming home, and all of it saved and carried on
  • Who has their own FTL (U.SPC-T472): the owner's roster as data, carriers and explorers always with a drive, a battleship only while its design fits the FTL drive facility (stripped at a yard, it has no drive and no berths and goes by the gates; fitted back, it has both), cruisers and destroyers with neither, a cruiser or destroyer sent to another system going by the gates and never under its own drive, a destroyer escort left behind when a battleship engages its drive (a carrier takes it clamped to its hull), the next hull on its own drive (not a craft docked aboard) taking command of a group whose flagship is lost between the stars, and a corvette or gate breaker slotting in as a roster entry
  • Carriers clamp escorts and lost carriers strand their wings (U.SPC-T473): a carrier taking two destroyers on its hull clamps beside the craft in its hangars and no more, a battleship none, a frigate slotting in on the clamps as data, a clamped escort lost with its carrier in open space; a lost carrier's wing landing on another friendly carrier only as far as its hangars have room, the rest stranded; a wing whose carrier ran putting in at a friendly station on the field; and when the fight ends, a stranded wing putting in at a friendly port at the world, or lost with its pilots ejecting
  • Fleet doctrine (U.SPC-T474): a carrier with its FTL capitals and the escorts its clamps take a jump strike group and anything it would leave behind a gate fleet, the strike group dropping out on the flank away from the gates and pickets held against it, command marching the gate fleet through the gates while the strike group jumps in on a second front, relieves a system of its own the enemy is loose in (stiffening its garrison) or raids an enemy port it outguns and jumps home, and a defender keeping a reserve at home as strong as the enemy's strongest strike group
  • The helm's FTL drive: carriers, battleships with a drive and survey hulls able to jump under their own power and every other hull refused, no jump inside a system's gravity wells (refused inside the outer rim, the charge lost on falling back inside it) and only ever to another star, never a planet or the system's own star, the target the star the nose is on, the charge taking the drive's spool and lost if the nose swings off or a fight starts, and a jump carrying the hull itself (its old slot left a gone marker, every other id where it was, the escort it led left behind) across already charged and into that system's fleet at the edge of the well
  • FTL physics: wells sized by mass (the Sun's, Jupiter's, Earth's) and an arrival moved clear of a planet's, a group pulled out at the edge of a star's well on its way and crossing it under its ordinary drive before going on, a gravity projector pulling out everyone but its own side (and nobody when off, and holding the helm's drive down inside it), the drive cooling after a drop-out before it charges again (at the helm and for a group), every jump burning its reaction mass and the helm refusing one the tanks cannot cover, momentum carried through, the galaxy's width centuries at the rated speed and years at the top, and every limit in the FTL settings taking effect
  • Interstellar navigation: a course from beyond the rim being exactly the jump the helm then flies (its ETA and fuel to the hour and tonne), a course from inside the rim running out to a departure point beyond it at the hull's thrust or gentler, courses refused for a hull with no drive, the system's own star, no target or tanks too short, a gravity projector on the line plotted and the real trip pulled out by it and dropping out at the plotted ETA, the autopilot flying out closed-form, turning onto the star at its rate and handing the charge to the drive, letting go in a fight, a long trip's time warp chosen from the menu's compression, and stars and beacons offered nearest first and cycled
  • Take charge, any time: every craft a carrier has launched a seat beside the ships' helms, a taken fighter turning at its own rate toward the stick and holding its throttle, its guns hitting only when the player aims and fires and a bomber's torpedoes loosed at the hull on its nose, a craft handed back flying a run of its own from where it was left, a craft shot down ending the session and saying why, the player's craft never holding a fight open, seats taken one after another mid-battle each handed back while the fight runs on, and a world left alone coming to blows and a seat taken in that fight and handed back without stopping it
  • Recon / EW fighter: a hull of its own with a frame, crew, cost and a carrier berth and no FTL, flying as an interceptor; a carrier launching its recon pair beside its full squadrons and landing it again, the pair scouting out to the enemy capital and holding off it at its standoff outside point defence, marking the capital its bombers are going for, jamming only enemies within reach and not while knocked out (or with the setting off), a jammed battleship's gunners hitting markedly less often, bombers going for the painted capital though another is nearer, a painted target's decoys seldom drawing off a bomber's torpedo, torpedoes flying across a painted battleship's bow coming round onto it where unpainted ones run dry, and a carrier with its recon pair aboard seeing half as far again
  • Strike craft: the interceptor, the space superiority fighter and the bomber each a hull of its own with a frame, crew, cost and a carrier berth and no FTL, each on its own flight model (the interceptor quicker off the mark and the far harder sidestep, the bomber slow to gather way and barely sidestepping, and drifting on the Newtonian hull with assist off), a carrier launching its squadrons as hulls of those classes (heavy fighters fourth) and landing them all again when the fight is over, a bomber going for the capital whose shields are down and an interceptor for the craft on its bomber, and a bomber's torpedo hitting a bare capital hull three times as hard while a shield soaks it (and not with the setting at 1), so a bomber run on a shields-down capital does far more than on a shielded one
  • Dogfighting: a carrier launching interceptors, fighters and bombers each its own class with a real hull, the interceptor out-turning the fighter at the stick and strafing and rolling under flight assist, engine power its top speed and shield power its recharge (four pips the most), each class's weapon groups on the second trigger, a lock built on the bandit nearest the crosshair and the missile then running it down, a flare drawing a missile off to go off harmlessly and an AI pilot throwing one on its own, AI fighters firing missiles at fighters, wingmen taking their lead's orders and covering it against what is on its tail, weak points open only from their own side, a lone bomber's two torpedoes through an open reactor vent bringing down a battleship (and not with the bonus set to nothing), AI bombers lining their runs up on the weak points, and the dogfighting settings in the menu
  • Fire cones and broadsides: a gun bearing on what lies inside its cone above and below the hull as well as to the side and on nothing outside it, a battery being the guns whose cones take in the line, no gun bearing where no cone reaches, a held battery not firing while the guns bearing the other way do, a volley holding until every gun bearing on the hull is loaded, telegraphing itself on its target and then firing every gun bearing in one step, the captain ordering the gunners to spread their fire and back to focus, armour angling measured where the shot strikes the hull's real surface (square on the side, from above or on the bow's tip, slanted on the curve of the side or raking it, thicker plate up to the cap and part turned aside, and no difference with angling off), AI captains and the weak-patch rolling slanting the hull to the fire while their guns still bear, a braced crew taking half and holding its fire until the brace wears off and not bracing again too soon, an AI captain bracing for a broadside it sees building, damage control teams from the crew patching mounts to the field limit (never an engine shot away) and working their focus first, formations laid out in the flagship's frame and the line holding station on it and breaking off to engage at will, only the flagship's own warships joining its line, turning circles and come-about times, AI captains bringing the guns whose cones can take their target to bear, firing the guns that bear together in volleys (and a gun that bears alone at will) with their gunners focusing a weakened patch, and the broadside settings in the menu
  • Shield emitters: no emitter with a facing arc, every emitter covering the patch of hull around it, a hit draining only the field of the patch it strikes (in 3D: from above the dorsal field, from below the keel's), a patch shot away holed while the rest of the hull stays covered, each patch regrowing on its own clock (and not at all with the rate at 0), gunners favouring a mount in a weakened patch and AI gunners picking them more often, emergency repair crews bringing back a shot-away emitter and gun given time (not an engine, and nothing with the rate at 0), and the settings in the menu
  • Radiators and heat: carriers, battleships, command cruisers and cruisers carrying four radiator panels after their own hardpoints and destroyers and smaller none, a panel far weaker than any mount, whole radiators shedding everything a ship makes fighting flat out, half of them only telling after minutes flat out, a hull with none building heat and its crew throttling to hold it short of the limit with nobody hurt, running hot past the limit losing hands and burning out guns and drives but never the reactor or bridge, an AI captain running hot only to escape, heat draining once the fighting stops, gunners going for the radiators far more on a hull running hot, and a hot hull reloading at a fraction of the rate in battle
  • The galaxy at full scale: the same seed making the same stars (another seed others), a star the same whichever place it is charted from, the real stars near Sol charted with the hand-built entry winning its star and nothing made up within 20 ly or near a real star, the density at Sol the local one, rising to the core and falling past the rim and off the plane, a stretch of the disc holding as many stars as the density says, the neighbourhood's mix of red dwarfs, G stars and white dwarfs, a generated system defined the same every time and building like a hand-built one, a catalogue star built as its star (with estimated values where it has none), nothing charted without a pilot, the stars about a pilot charted and the nearest built, let go far off and built again planet for planet on coming back, a system the player is in never let go, and a new region and its content registered and built as a pilot comes near

Limitations

  • Planet elements are a fit. The JPL table is accurate to roughly arcminutes across 1800-2050 (measured against Horizons over 2000-2050: Mercury to Neptune within 0.16°), and drifts outside that window.
  • Moons are mean orbits. The Moon follows the main terms of a real lunar theory (within 0.01°), and Phobos includes its tidal decay (within 0.07°). Every other moon is an ellipse with steady precession, within 0.5° of JPL Horizons over 2000-2050 except Miranda (1.7°), whose neighbours' pulls a mean orbit cannot follow.
  • Ship drives are fiction. The kinematics are real, but sustained 0.06 to 1.2 g torch drives are not, and transits ignore solar gravity, which is negligible at those accelerations. Piloted flight is Newtonian (thrust over mass, torque over inertia, momentum carried, gravity close to a world), but the masses and thrusts are set for feel, a light fighter's flight computer pulls its track round with more grip than its thrusters could give, collisions push through the centres (they impart no spin) and only the piloted hull collides, the assist's set speeds are game numbers, gravity is cut off beyond four radii, and spin about each axis is integrated on its own without gyroscopic coupling.
  • Gameplay scale bends paths. Ships fly their true path at both scales, but gameplay scale draws it through the same compression as the planets, eased near each end so the ship stays outside the inflated worlds. In a crowded moon system an inflated neighbouring moon can still be drawn over a passing ship.
  • Alpha Centauri is part guesswork. The A–B orbit and Proxima's place are measured; the planets' orbital planes and phases, their radii and Proxima's orbital plane are assumed, and two of its worlds may not exist. The jump gates sit 5,000 km out so a pilot can reach them, not light-years away; AI ships fly the in-system legs to and from them, but the gates themselves, their crossing times and the lattice are fiction. Only Sol and Alpha Centauri are settled, so interstellar trade and raiding run between those two; the other systems are crossed and surveyed. The trunk lanes across 12,000 AU in days are deep fiction.
  • The game layer is fiction. Settlements, factions, production rates and prices are invented (on plausible worlds); hyperlanes and torch drives are not physics. Battles are fought at bodies and, by pirate interdiction, beside hyperlanes; patrols hail and interdict only the player's ship (NPC raiders are fought by the war as before), and a crime's witness is whoever was in range, without line of sight or reporting delays; ships on flip-and-burn transits cannot be intercepted. Marines are not drawn yet (the interior model is ready for a shipboard view). There is no campaign or win condition; you observe, or fly one ship at a time.
  • Navies do not burn propellant yet. Civilian ships fly on real propellant; warships' tanks are carried for when they are piloted, but their fleets do not draw on the markets until they have a supply chain of their own. Nor does a ship on an interstellar voyage while it runs in to a jump gate (a crossing of the whole system that no tank would cover), and the tank masses are an economic scale, apart from the flight model's much heavier hull masses.
  • Piloting is partial. A piloted ship riding a hyperlane gets no warning of a lane ambush (the raiders' pulse passes it by), and pays no toll. Only ships can be piloted. Stripping a part takes the soundest (or the one that fits your hull); there is no picking from a list yet.
  • Saves belong to their build. A save is the simulation's own objects written field by field, so it survives fields being added or removed, but a later build whose code has moved (its lambdas renamed by the compiler) may refuse an older save. A salvage latch in progress is let go when a save is loaded, and a save cannot be made between the stars (the autosave waits until the trip is over).
  • Surfaces are wrapped on spheres. Phobos, Deimos and the other small irregular moons are drawn round. Relief is shading only (exaggerated about 5×), never displacement, and lunar libration is not modelled.
  • Weather is a model on a 2015 snapshot. Jupiter's map is Hubble's of January 2015, turned so the Great Red Spot is where it is today; the other storms on it are 2015 weather. The flow map reproduces real band speeds and the spot's rotation, not real storm evolution. The Saturn, Uranus and Neptune maps are stylized (CC BY), so only their motion is data.
  • Asteroids ignore Jupiter. They fly two-body orbits from the 2026 osculating elements, drifting from their true places by roughly 0.01 AU a year. Only numbered objects brighter than H 15.5 (about 2 to 5 km) are included, and asteroids are labelled but not selectable.

Roadmap

Planned, from the open tickets in docs/USER_STORIES.md:

  • A distinct flight model per family of craft, tuned one family at a time: the heavy fighter (Everspace 2), haulers and the Courier (docs/FLIGHT_MODELS.md).
  • Piloting anything man-made: satellites, stations and single turrets, not just ships.
  • Shield bubbles that ripple where a hit lands.
  • Warning of, and a response to, lane ambushes for the piloted ship.
  • Hidden pirate bases on real belt asteroids.

Documentation

  • docs/USER_STORIES.md: every story and ticket, with the test that proves each one. It is generated from the MindAttic.Tickets database; change tickets with the tickets CLI, not by hand.
  • Assets/UnitySpace/Resources/Textures/SOURCES.md: where every surface map comes from and its caveats.
  • Assets/UnitySpace/Core/Systems/SOURCES.md: Alpha Centauri, nearby stars, spacecraft orbits and ring sites, with the assumptions made.
  • docs/FLIGHT_MODELS.md: how each family of craft flies, the flight-model extension point, and the plan for the families still to come.
  • docs/EMBODIMENT.md: taking charge of anything (a ship's helm, a fighter, a gun mount), the one extension point every kind of seat plugs into, and switching between seats from the strategy view.
  • docs/BOARDING.md: interactive boarding: the design pass (compartment tactics now, a shooter later as an embodiment seat), the player's standing orders over the resolver, and the layers still to come.
  • docs/SHIP_ROSTER.md: the ship roster and doctrine canon: the three travel layers, every class and who has its own FTL, the weapons by tier, the softened realism rules and the two fleet doctrines.
  • AGENTS.md: instructions for coding agents working in this repo.

License

The code has no LICENSE file yet, so all rights are reserved. Third-party assets keep their own licences:

  • Planet colour maps: NASA / USGS (public domain). The Saturn, Uranus and Neptune maps are by Solar System Scope, CC BY 4.0. Details in Assets/UnitySpace/Resources/Textures/SOURCES.md.
  • Moon colour and LOLA elevation: NASA SVS CGI Moon Kit (Ernie Wright; LRO LROC and LOLA teams). Jupiter: Hubble OPAL map via NASA SVS (Simon, Wong, Orton). Moon, planet and satellite mosaics and DEMs: USGS Astrogeology, NASA PDS (MOLA MEGDR), and JPL's Solar System Simulator maps (Caltech/JPL/USGS) for Miranda, Titania and Oberon.
  • Asteroids: JPL Small-Body Database. Great Red Spot position and drift: British Astronomical Association Jupiter Section and JUPOS. Zonal winds: Porco et al. 2003, Sánchez-Lavega et al. 2000, Sromovsky et al.
  • Ore hauler and courier models: Kenney Space Kit, CC0.
  • Hull plating: ambientCG MetalPlates015A, CC0.
  • Alpha Centauri, nearby stars, spacecraft orbits and ring sites: see Core/Systems/SOURCES.md.
  • Orbital data: JPL Solar System Dynamics, the IAU WGCCRE report, and NASA planetary fact sheets.

Part of MindAttic — see more projects at github.com/mindattic. Related: ExperimentSolarSystem, the Babylon.js predecessor, and MindAttic.Capture, which records it.