← News  //  2026-09-19  //  v0.14.0

v0.14.0 - Every ship at its own scale

v0.13.0 put the game on screen. It gave every section a body, gave the world materials and sound, and gave the base game a fleet it could draw from its own parts. It also exposed the next problem. A skiff and a carrier were still asked to live inside too many of the same invisible numbers. They circled at the same radius from their centres. They aimed through the same cone. Their cameras, markers, explosions and wreck motion assumed the same hull around them. The larger ship looked larger, but much of the game did not know what that meant.

v0.14.0 makes the ship's real shape count. Sensors read the return of the body in front of them. Guns aim at its angular size. Torpedoes arm only after they clear the hull that launched them. AI measures its attack, jink and route around both hulls, not two points. Cameras and HUD marks stand clear of the structure that is actually alive. When a carrier dies, its fire crosses the carrier and its wreck parts leave at the speed their own size needs.

It also makes the ship the owner of more than its dimensions. The hull owns its permissions and its cockpit voice. A ship in content is a design assembled from catalog parts and explicit patches. A mod can own a complete interface theme. And the player gets two new ways into all of it: a 62-lesson training handbook, and the first chapter of the rebuilt campaign, a rescue flown without firing a shot.

v0.14.0 is the scale and ownership release

Fly without a speed governor, learn the ship from a handbook, bring two hulls together with DOCK, and take the first job in Season 1. Mod authors should read the compatibility section: ship designs, section patches, scenarios, themes and installed-mod defaults all changed format.

Loop planned assets/loops/news-0140-release-lead.webm The Gantry rescue in one continuous shot: Kaveri closes on the damaged frame tender, the view moves in as the collars meet, and both hulls leave together under the story comms.
A ship-sized approach, a hull-to-hull connection, and a job whose whole story is in getting there.

The throttle has no ceiling

Manual flight is Newtonian now. Hold the main drive and the ship keeps building speed for as long as the drive can burn. There is no hidden governor waiting at 500 m/s, and there is no second press that the throttle quietly ignores because the number has been reached. The drive always answers.

That sounds like a deleted limit because it is one. The hard part was not removing the comparison. It was removing every assumption built around the comparison: the HUD's speed-cap marks, the settings and scenario action that could retune it, the handbook copy that taught it, and test ranges whose camera or deadline expected a ship to stop accelerating on its own. A file still using speed_cap or SetSpeedCap is refused rather than accepted with a field that no longer does anything.

RCS keeps its own 100 m/s budget. The distinction is deliberate. Main drive is how a ship commits to a trajectory. RCS is the bounded translation tool for placing the hull, approaching a port and taking the last few meters out of a maneuver.

Loop planned assets/loops/news-0140-newtonian-burn.webm A workship in open space with the velocity readout and drive visible: one uninterrupted burn carries it through the old 500 m/s ceiling, the engines stay lit, and the readout keeps climbing until the pilot releases the throttle.
There is no speed at which a live drive stops answering.

The enemy flies the same kind of ship

Enemy flight was rebuilt around the flight computer instead of a collection of fight-specific pushes. A hostile now holds a velocity and points its nose while it closes, circles and jinks. Only the thrusters that produce the requested burn light. Its speed comes from what its live drive and turning authority can hold, not two fixed combat caps.

The circle is measured between hulls. A skiff and a carrier both keep 1 km of clear space by default, even though their centres end up at very different ranges. A ship can author another standoff_clearance, including zero for contact. The whole fight happens in the target's moving frame, so a hostile matches the velocity of a ship that runs instead of holding a perfect ring around the place the target left.

A jink is physical too. Each of its three legs continues until the hostile has carried its entire hull clear of the line that threatened it. A small ship cuts across quickly. A carrier has to move a carrier's width. If the drive is gone, the ship stops pretending to evade and fights from the trajectory it has. Patrol avoidance follows the same rule: its 200 m margin begins at the skin, not at the centre, and avoid_margin can tune that space per ship.

Loop planned assets/loops/news-0140-ai-flight.webm A skiff-scale AI attacker circles a stationary carrier, repeatedly correcting its flight while its guns walk impacts across the capital hull.
The tactic is shared. The motion belongs to the hull flying it.

The flight computer also carries 9,760 of torque, up from 1,501. That change is mostly visible on the intact carrier: it now turns at the rate its metal allows, about 0.40 rad/s2 instead of 0.07. Shoot out the bridge and the barge comes back. Small hulls were already limited elsewhere and do not become spinning tops.

Two hulls become one

DOCK is the new helm verb. Lock another ship, bring a free port on each hull inside the envelope, and press D. The nearest eligible pair holds the two ships together at the pose where they met. Press DOCK again from either hull to release them.

The envelope has four rules. The port faces must be within one cell of each other. Their axes must oppose within 15 degrees. Closing speed must be under 5 m/s. Both ships must permit docking. Roll around the port axis does not matter, so a pair can meet at any twist instead of hunting for one ornamental "up" in space.

A dock is modal. Main drive, helm and RCS stay dead while the connection holds. An engaged maneuver releases the dock before it flies. The joined hulls keep the drift they arrived with; capture does not zero either ship and turn a moving rescue into a frozen tableau.

Loop planned assets/loops/news-0140-docking-approach.webm Kaveri closes on Gantry in a stable three-quarter view. The docking brackets hold both collars, the range closes, and the DOCK state lights when the connection takes.
The sight does not say "close enough". It shows which half of the envelope is still wrong.

A port is a section

Docking is not a magic point on a ship record. Docking is a section kind with its own capture distance, capture angle and speed ceilings. The shipped dock_flush port has a sliding sleeve. It sits retracted against the hull until the connection holds, reaches across the last gap, and never grows a collider through the other ship.

A ship owns a dock capability as well. It is enabled by default, but a range that is trying to teach another verb can withhold it. Scenarios can react to both sides of the connection through OnDocked and OnUndocked; undocking covers every ending, including a port or whole ship being destroyed.

Image planned assets/news-0140-docking-port.png The dock_flush section in the section gallery, shown twice under the same angle and light: retracted against its mounting face, then extended with its sleeve at the held pose.
The port reaches only after the solver has a connection to hold.

A Useful Job

The base game has a story campaign again. Season 1 opens with "A Useful Job": a quiet lane assignment that becomes a rescue. Thread a working lane on RCS, come about on the damaged frame tender Gantry, bring the ports together, and take three people off. Nothing in the chapter is armed.

That last part matters. The first story the new campaign tells is not a firing range with names painted over its targets. It asks the player to read drift, turn a working hull around a stranded one, and use the release's new verb under pressure from people rather than weapons.

The Scenarios screen now gives a campaign its own folding header. Season 1 sits over its chapters, while Basic Training remains a separate row. Every installed chapter is launchable from the picker; the old hidden chain is gone. A scenario now declares its role as Chapter, Backdrop or Lesson, and a campaign may name only a chapter the player can launch.

Loop planned assets/loops/news-0140-useful-job.webm The middle of A Useful Job: the workship clears the last lane mark and Gantry's first rescue call opens over the live flight view.
No target bracket turns hostile. The hard part is arriving with control left.

Seven voices, seven faces

Season one's seven speakers have portraits built from the story's character palettes: skin, hair and coat belong to the character, not to a generic comms silhouette. A remote caller carries a blue channel chip. Someone in the cabin carries a green one. The color identifies where the voice is before the line has been read.

The comms backlog now holds 24 waiting lines, enough for the three visible cards to keep moving while each line is still worth reading. If a scenario posts faster than that, it drops the oldest waiting cue, not the current line about the maneuver the player is flying.

Image planned assets/news-0140-season-one-comms.png Tomas's Season 1 call holds over the live Gantry approach, pairing his portrait and name with the lane-clear report while both workships remain in view.
The band says where they are. The portrait says who is there.

The handbook is the front door

The main menu opens a training handbook with 62 lessons in six categories. Each lesson is one screen: a short explanation, a demonstration captured from the game, the player's current bindings, a link into the wiki, and, where practice helps, a button that launches a range built for that lesson.

This replaces the idea that one linear tutorial can carry the whole game. Basic Training is still the guided first flight. The handbook is the reference beside it: open only the lesson needed now, watch the act instead of reading a control list, and return later without replaying an hour to reach one maneuver.

Four practice ranges ship with it: momentum, STOP, one autopilot range for GOTO and ORBIT, and turret gunnery. A range hands over only the verbs its lesson teaches. It says why on the comms channel, lights the chip for the verb currently in hand, and ends in a clear success banner or Retry instead of silently leaving the player in a sandbox.

Loop planned assets/loops/news-0140-handbook.webm The handbook opens from the main menu, selects the practice-enabled radar lesson, holds its demonstration, then launches the lesson's real practice range.
Explanation, demonstration, current binding, deeper reference, then a place to try it.

It remembers what you learned

The handbook keeps a progress file beside settings. Opening a lesson marks it read. Winning a scenario that teaches the lesson marks it done. The difference is visible: reading the explanation and completing the act are not collapsed into one check mark.

A first launch offers Basic Training in the menu corner. Take it or answer "Not now" and the card stays away; Settings > Interface can bring it back. The same corner can carry a two-line field note drawn from the handbook, with its lesson one click away. Field notes also occupy the spare slot on loading screens, and can be disabled from the card or settings.

A mod can teach too. Lesson is a content item with category, order, still or sprite-sheet loop, body, named actions, wiki path and optional practice range. A new id adds a lesson. A shipped id overlays one.

Image planned assets/news-0140-handbook-progress.png The handbook category view after several sessions: unread, read and done lessons appear together beside the selected introduction, its embedded demonstration and the overall progress counters.
Read means the page was opened. Done means the game saw the lesson's act completed.

A ship is a design

A content ship is a DESIGN now. Its old hull field becomes design. collapse_threshold moves under integrity. Skin, style and sounds move under presentation. The words match the ownership: the design is the reusable assembly, integrity is how that assembly fails, and presentation is how the finished hull looks and speaks.

The base catalog follows that boundary. Two civilian industrial designs join it. block_workship is an open work cradle over two bell drives. block_frame_tender is a keel under two gantry arches with a flank collar. Its raided sister has no main drive and loses its transom and service stack along a ragged edge, while the cab and collar ahead of the strike remain whole.

At the same time, base content stops being a fixture warehouse. Hulls no shipped scenario flies leave the catalog, as do the siege railgun, the Breaker torpedo bay and the placeholder style. Examples now own the rigs they test. A mod that needs a removed hull or weapon must ship it instead of depending on a private bench piece that happened to be in base.

Image planned assets/news-0140-industrial-hulls.png The workship, frame tender and damaged frame tender posed at one scale. The tender pair use the same front half; the damaged version ends in a torn edge where the drive and service stack used to continue.
Two working hulls and one event written into the third hull's structure.

References carry patches

A prototype reference no longer carries a bag of modifications. It carries a typed patch: health plus only the fields that belong to that section kind. Anything the patch omits is inherited from the catalog prototype. Applying a turret patch to a thruster is a lint error, not a list that loads and perhaps does nothing.

A ship spawn tunes its catalog design through section_patches, keyed by the design's own section ids. The editor writes the same form. Place a catalog part and the document keeps the reference rather than copying the resolved section. Tune one field and it saves only that delta. A changed row gets a mark and a reset control; reset removes the field from the patch, so the part inherits the catalog again instead of freezing today's value into the document.

Every turret muzzle now has an id. A single mount uses main; the shipped twin uses left and right. Patches and editor rows address those ids, and duplicate ids fail lint.

Loop planned assets/loops/news-0140-editor-patches.webm A twin turret is placed from the catalog, one muzzle group is opened, its value is changed and gains a tuned mark, then Reset removes the delta and restores the inherited value without replacing the prototype reference.
The document says what changed, not what the catalog happened to contain that day.

Magazines say what they do

Weapons now author ammunition and reload as separate decisions. ammunition: Unlimited or Limited(n) says whether the magazine can empty. reload: Disabled or Batch((delay, amount)) says how rounds return. A batch reload on an unlimited gun is rejected because it cannot have a visible effect. A torpedo bay must also author a positive finite fire_rate; invalid content is caught at lint, and a bad bay that somehow reaches runtime gets no launcher instead of firing every tick.

The cockpit voice belongs to the design too. A ship that loses every flight computer can no longer steer, but it keeps its radar, point defence, permissions, lock calls, dry-magazine call and structural alarms. Destroying a controller takes away control authority, not the identity of the whole ship.

Combat reads the body

The sensor pass is shared by player and AI. Range, line of sight and relation are collected once per ship per frame, so a hostile cannot target something the player-facing rules say is hidden, and two systems cannot disagree about which side of a rock a contact occupies.

A lock's range comes from the target's return instead of its class. A bare ship returns about 9 km, a skiff about 22 km, and a carrier about 60 km from its live hull and machinery. Asteroids and planets default from their true surface. Torpedoes return from speed. A bare gravity anchor and any other unsigned body remain point-blank. AI may author sensor_range, and Some(0 m) means it sees nothing at all.

Once a lock is held, making the target quieter does not retroactively break it. The lock remembers the range at which it was acquired. It also no longer expires after thirty quiet seconds. Only the world - range, sight, destruction - or the pilot's own tap removes it. Cover now drops both the weapons lock and the travel designation. An already engaged GOTO survives because the computer owns the destination from the moment the maneuver starts.

Loop planned assets/loops/news-0140-sensor-scale.webm A skiff and carrier cross the same radar display at increasing distance. The skiff falls off first while the carrier remains available, then a rock crosses the held carrier lock and removes both lock slots.
Range belongs to what the target returns. Cover belongs to the line between you.

Aim at what is there

A gun fires inside the target's angular size instead of one 0.92 degree cone. A carrier at 1 km fills about 11 degrees, a skiff about 2.7 and a torpedo about 0.7. A crosshair with no target underneath still uses the fixed cone. AI railguns use the same geometry before committing, so a lance no longer spends its only shell while its bore is sweeping kilometers wide of the hull.

Pierce rounds lose their six-layer ceiling. Power is the only bound now. Cheap plating cannot stop a rake simply by offering enough nearly free layers, while a layer that costs no power still ends the round. Pierce also advances past near misses already counted in a dense debris field, so the cloud no longer protects whatever stands behind it by trapping the traversal on the same pieces.

Torpedoes must clear the firing hull plus their own blast before they arm: about 324 m from a small boat and 494 m from a carrier. Within that envelope the warhead is inert. AI keeps its separate 900 m launch margin between the two hulls, which puts a carrier launch at about 1,290 m where a skiff can launch at 1,000. Thrust tapers over the last 15 percent of the torpedo type's own cruise speed, so a slow warhead is not stranded inside a fixed 50 m/s taper.

Loop planned assets/loops/news-0140-torpedo-envelope.webm Matched torpedoes leave a skiff-scale launcher and a capital launcher in consecutive close views, clear each hull, light their drives and close on their targets.
A warhead becomes live only after its own ship is outside the blast.

Two hulls can come alongside without paying for harmless contact. Under 5 m/s, the collision costs nothing. Above it, only the excess is spent. A carrier pair can park and dock without shredding each other's outer cells on the contact solver.

The interface belongs to content

Settings > Interface now lists THEMES, not two hard-coded skins. The shipped Phosphor and Hardware looks are base-mod content at base/phosphor and base/hardware. An enabled mod's themes appear in the same row.

A UiTheme is complete interface paint: a palette, three metrics and every widget role. It can inherit from another theme. A recolor can inherit base/phosphor and declare only a palette; a role it does declare replaces the inherited role whole, including its states. A root palette carries a required nominal color for healthy, online and passed states, separate from primary, so a theme whose main ink is not green can still show a green lamp.

Theme changes repaint what is already on screen. The menu, pause screen, editor and HUD resolve their paint from the live theme instead of keeping the look they were built with. If a selected theme's mod is disabled, the game falls back to Phosphor and says why under the row. It keeps the selection, so enabling the mod restores the theme.

Loop planned assets/loops/news-0140-live-themes.webm Settings remains open while the selection moves between Phosphor and Hardware. The panel and menu behind it repaint in place without rebuilding the screen.
The selected content paints the interface that is already alive.

Hardware is now a casing throughout, not Phosphor with a beige frame. It carries its own semantic palette, so labels, body copy, previews and status marks all read in the casing's ink.

The view clears the ship

Every camera rig now measures the live hull. Chase, combat and free-look views stand beyond a carrier's shoulders instead of opening inside them. The survey camera's dolly and burn scale with the rig. A scenario opens behind the player wherever the ship spawned, not at a fixed point that can be inside a large hull or kilometers from a displaced one.

The HUD follows. Velocity and gravity spheres sit 5 m and 11 m outside the live hull around its centre of mass. World labels stand off a target's projected edge instead of a fixed number of pixels. The flip gate encloses its own hull. Dwell rings, unlatch ghosts and component marks scale from what they mark. Crowded ammo gauges cluster in screen space, report mount count and lowest feed, then separate when room returns.

The objective stack and target inset measure readouts and the status bar before they place themselves. The bore sight traces only as deep as the shot's power can pay. NOVA OS maps bodies at physical size, gives tiny ones a minimum pick target, and chooses ring spacing from the contacts actually present.

Image planned assets/news-0140-hull-scale-hud.png A carrier in a clear three-quarter combat view, with the camera outside its live skin and the velocity readout, distant target marker and flight controls clear of the projected hull.
The overlay measures the ship before it decides where the cockpit can read.

The editor learns the same scale. Entering a ship frames its whole hull; the scenario view frames the whole document. A new ship stands 20 m clear of the last one and shuffles outward as the hulls grow, until the author moves it by hand. Previews use real bounds. Placement distance and drag steps follow the camera's framing scale. The stage camera accelerates from 60 m/s to 32 times that over two seconds and widens its lens as it crosses a large range. The parts gallery expands up to eight by five tiles and parks its preview stage clear of the document.

A large ship dies large

A hull's death now comes from its live structure. The fireball, debris and flash scale to the body that failed. A carrier's death reaches 479 m instead of ending 58 m inside its own wreck. The collapse can light up to 48 fires spread over the sections it condemned, rather than burning only the first six pieces shed.

The event is grouped by the structure it happened on - hull, wreck, rock or torpedo - rather than by 60 m cells in space. A carrier collapse is one kick from the carrier's middle, not 25 separate camera blows.

Wreck motion scales too. Two severed halves move clear in about two seconds whatever the original hull size; below 20 m, a piece is not pushed at all. A section cut from deep inside a capital hull can leave at over 100 m/s and remains a ghost until it has escaped the structure around it. It no longer becomes solid while still buried and grind through the wreck for twenty seconds.

Loop planned assets/loops/news-0140-carrier-collapse.webm A carrier crosses its authored structural-collapse threshold in full view. A localized breach starts the real cascade, hundreds of sections peel away, and detached wreck pieces spread clear while the remaining hull keeps collapsing.
The effect covers the event. The debris leaves at the speed the wreck needs.

Less body work for the same hit

Bullet chips are GPU particles now. A busy 4v4 fight used to carry about eight thousand short-lived kinematic bodies through physics, every sensor sweep and the renderer for 2.5 seconds. The chips remain visible without becoming bodies the rest of the game has to understand.

A frame emits at most 64 craters of each material, seven chips for a wide one. The 65th crater throws nothing instead of cutting a short effect from the last budget. Gun rounds confirm a hit against the collider already selected rather than searching the spatial tree a second time. The game also caps parallel workers at eight; above 16 hardware threads, extra workers mostly waited on one another. The busy 4v4 reference gained about 28 percent in frame time and 33 percent at its worst.

Loop planned assets/loops/news-0140-four-v-four.webm The matched busy 4v4 reference fight from a high tactical camera: both formations enter together, tracer streams cross between the lines, and repeated impacts turn the ordered opening into a debris field.
The picture is still busy. The chips are no longer ships, sensors or solver work.

More in v0.14.0

The main story is scale and ownership, but the release also closes a long list of sharp edges:

  • A scenario opens complete. World simulation stays held while objects spawn and art loads. A failed or stalled load ends in a report that names the art; valid work still arriving is not cut off by an arbitrary deadline.
  • A broken installed mod does not break boot. Only base content must load. A mod that fails is switched off, named once on the menu, and left installed so it can be updated, removed or enabled again.
  • A fresh install enables only base. Installed mods no longer opt themselves in through enabled_by_default, and every installed mod has a visible row.
  • Desktop starts borderless fullscreen. Existing choices remain intact. Windows cannot shrink below 640x600, and Settings uses 92 percent of narrow space up to its 620 px maximum.
  • Focus loss pauses interactive play. Returning leaves the pause menu open; the game never resumes itself. Scripted runs are exempt.
  • Only one full-screen overlay owns the front. Outcomes and start failures replace pause rather than drawing at the same depth, and every full-screen layer comes from one ordering table.
  • The command shells agree. Incomplete commands list aligned subcommands in NOVA OS and the command shell, and a bad subcommand is named under the caret before Enter. The NOVA OS drawer scrolls at the same rate as every other pane.
  • Selection no longer rebuilds lists. Scenario and lesson rows keep their scroll position and do not restart thumbnail loading when the highlight moves.
  • The menu duel stays in frame. Both ships patrol mirrored centre lines; the doomed raider breaks apart below half health.
  • The editor offers only loadable assets. A sideloaded bundle that reuses a shipped id no longer leaks ignored files into pickers.
  • Bindings fail clearly. bind refuses an input already owned by another action and names it. Rebinding a section preserves its controller trigger.
  • A fatal base-file error ends in a report. Desktop offers Quit; browser builds give reload and report instructions instead of spinning forever.
  • Scenario launch and return are single transitions. --scenario launches once, returning goes through Loading to the menu, and no one-frame backdrop or stale launch scenario appears on the way.
  • The sky, markers and overlays update in the right order. Scripted camera poses project indicators through the pose that will be rendered, and editor pause finally covers the editor foot bar, gallery and windows.
  • Detonations survive slow frames. Blast damage is spent in physics ticks, so a heavy frame cannot sweep the volume away before it resolves what it hit.

Modding and compatibility

v0.14.0 deliberately removes obsolete internal formats instead of maintaining adapters for content that has not shipped on this version. Run content lint on every bundle. It names known fields and ids before the loader has to guess.

  • Manual speed caps are gone. Remove speed_cap and SetSpeedCap. Main drive is unbounded; RCS keeps its separate budget.
  • A ship spawn uses design, not hull. Move collapse_threshold under integrity, and move skin, style and sounds under presentation.
  • Ship permissions live on the ship. Replace controller DisableVerb data with the spawn's capabilities block. Six SetShipCapability* actions replace SetControllerVerb.
  • Prototype edits are typed patches. Replace a reference's modifications list with patch. Replace a spawn's modifications with section_patches keyed by section id.
  • Weapon feeds are explicit. Author ammunition: Unlimited or Limited(n) and reload: Disabled or Batch((delay, amount)). Every turret muzzle needs a unique id. Every torpedo bay needs a positive finite fire_rate.
  • Docking is a section kind and capability. Author capture distance, angle and speed ceilings. Scenarios may listen for OnDocked and OnUndocked.
  • Scenarios declare a role. Replace menu_backdrop with role: Chapter, Backdrop or Lesson. Remove hidden; every installed chapter is launchable.
  • Scatter rings need a centre. Ring.center is required.
  • Themes are content. The saved selection is a theme id. Root palettes need nominal. A mod may add a UiTheme or overlay base/phosphor.
  • Several tables became code. Impact rows, narrative channels and ship grammars are no longer content. A style now has a palette and three-word placement; an asteroid uses kind, not material; a cue uses accent.
  • Lessons are content. A Lesson can add or overlay handbook material and may name a practice range.
  • Installed-mod flags are gone. Remove catalog hidden and enabled_by_default. New installs enable base and nothing else.
  • Base content is smaller. Raider, carrier, warship, skiff, tug, claw, cleanup leader, three carrier wrecks, the siege railgun, Breaker bay and placeholder style are no longer borrowed from base. Ship what the mod uses.
  • The Ledger has new scenario ids. Its six Field Trials replace the old campaign set; retarget links and launch commands.
  • Old interface skin settings are dropped. An older ui_skin store opens on base/phosphor; new settings persist a theme id.

Lint the design, then fly its size

The format breaks remove fields the game no longer owns and make the remaining decisions explicit. Migrate each bundle with the current creator reference, run content lint, and verify the resolved ship in the editor before publishing it.

The visible result is a game where a carrier is not a skiff with a larger mesh, a controller is not the soul of the hull around it, and the interface is not paint only the base game may choose. The shape, authority and presentation all have owners now.

Point releases

No point releases yet.