Clicks no longer pass through the mod's windows. Pressing a button on the HUD, the Destinations
list or either config window used to also reach whatever was behind it — placing or selecting a
building, dragging the camera, zooming with the wheel, or hitting a DSP panel underneath. Every window
of this mod and of AutoPilotPlus now registers the screen area it covers, and while the cursor is over
one the game's own "cursor is on the interface" state (VFInput.onGUI / onGUIOperate /
inScrollView) is raised — the exact flags DSP sets over its own panels, so every consumer of them
stands down identically. A camera drag that started in the world still keeps working when the cursor
crosses a window, because the game's press-latch is reproduced rather than bypassed. Pointer raycasts
are also suppressed under a mod window, so DSP's own buttons beneath one get a clean pointer-exit
instead of a stray click. Toggle with UI/BlockClickThrough.
The windows now look like the game's. Dark translucent panel, cyan-steel hairline edging, a real
title bar, flat cyan-accented buttons, checkboxes and sliders, and list rows that light up on hover
instead of being a wall of grey buttons. The typeface is DSP's own, read from the live UI hierarchy at
runtime (UI/UseGameFont); the chrome is generated procedurally, so nothing breaks when the game
updates its asset bundles. Set UI/UseGameSkin to false for the old Unity look.
Collapse, config and close moved into the title bar on the CruiseAssist+ HUD and the AutoPilot+ panel,
freeing the row they used to occupy. A collapsed window keeps its title bar.
The config window is grouped under headings and exposes the three new UI settings.
The debug overlay reports whether the cursor is currently being treated as over a mod window, and which
font was picked up from the game.
0.3.4
Fixed the frame-rate drop while the Destinations window is open, which got much worse after
researching Universe Exploration 3 (the research that makes Dark Fog hives visible galaxy-wide).
Three separate causes:
The galaxy scan's cooldown was counted in GUI events, not frames. Unity raises OnGUI at least
twice per frame and again for every mouse move, so the "once per 60 frames" rescan — every hive's
tinder pool, a coordinate transform per seed, then a LINQ sort — was really firing several times a
second, and faster the more you moved the mouse. It now runs at most once per second (configurable),
on the layout pass only.
Every visible row recomputed its own distance (a square root) and re-ran string.Format on every
GUI event. Distances and labels are now formatted once per refresh into a cached snapshot.
The scroll view laid out every row even when scrolled out of sight, and GUILayout.Width(...)
allocated fresh objects per cell per event. Rows are now virtualised: only the ~20 on screen are
drawn, so cost no longer grows with the number of stars, hives, or seeds.
The window no longer grows to swallow the screen on long lists, and can be resized by dragging
the ◢ grip in its bottom-right corner (size is saved). Dragging is now limited to the title bar, so
clicking around in the list doesn't fling the window across the screen.
Added a ✕ close button in the window's title bar (reopen with the HUD's Destinations button).
Added a Find box that filters the current tab by name — the practical way to use a galaxy-wide
hive or seed list.
Expanding a star now only builds that star's planet rows, so the Stars tab costs the star count rather
than stars × planets. Same treatment for History and Bookmark.
New Performance config section (also in the in-game config window): ListRefreshSeconds,
MaxListRows (nearest-first cap per section, with a "… N more" row — never a silent truncation),
ShowDarkFogSeeds, and ShowCommunicators. Turning seeds off skips the most expensive scan entirely.
The debug overlay now reports the row count and how long the last scan took, so the remaining cost is
measurable rather than guessed at.
0.3.3
Fixed bookmarks (★) not persisting. A save triggered before the current galaxy's saved state had loaded
(unreliable with Galactic Scale active) was overwriting the stored bookmarks with an empty list — visited
History repopulated itself from travel, so only manual bookmarks appeared to vanish. State is now loaded
lazily as soon as a valid galaxy is seen, and a save can no longer write until that seed's state has been
loaded. Also flushes the config explicitly on every change. Still keyed per galaxy seed.
0.3.2
Renamed the target picker Stars → Destinations (window title and HUD button) now that it lists more
than stars, and moved the Dark Fog tab to sit right after Stars (order: Stars, Dark Fog, History,
Bookmark).
All mod windows now clamp on-screen. A window whose saved position landed off the edge — e.g. dragged
on a larger display, or pushed out when the UI scale was raised — is pulled back so its title bar stays
grabbable. Fixes the AutoPilot+ window becoming unreachable at higher UI scales.
0.3.1
Real intercept ETA for seeds on the HUD. When a Dark Fog seed is selected, the HUD now shows
Intercept: H:MM:SS = range ÷ the actual closing speed (measured from how fast the gap is shrinking each
tick, so it accounts for the seed's motion and your heading). Shows -- when you aren't gaining on it.
Toggle with Setting/SeedInterceptEta (in-game config: "Seed intercept ETA on HUD"); off falls back to the
naive range ÷ your speed.
Fixed the Dark Fog list's seed ETA, which previously divided your distance-to-seed by the seed's own speed.
It now correctly shows time until the seed reaches its destination hive (your intercept deadline).
0.3.0
Dark Fog navigation. New Dark Fog tab in the Stars window lists targets you can steer to:
Hives — galaxy-wide (observe-gated; local system always shown), distance-sorted.
Seeds — every active outbound Dark Fog unit, with live range + ETA, discovered by scanning each
hive's tinder pool.
Communicators — visible Dark Fog Communicators (CosmicMessageData.doodadProtoId == 5, gated by the
game's own IsMessageVisible). Communicators are also adopted automatically when you click the in-game
cosmic-message marker.
Guidance resolves a live universe position each tick for the moving hive/seed target and auto-clears on
arrival (hive 30 km, seed 3 km, communicator 2 km).
HUD shows the Dark Fog target name (hive / seed / communicator) with range + ETA.
Robust against destroyed/recycled enemies (validates the pool slot still holds the same enemy), null pools,
and pre-load state — a game-side change degrades to "no target" instead of crashing the tick.
0.2.3
Moved the Config button into the HUD header (top-right, next to ✕), matching the AutoPilot+ window
layout. The bottom row is now just Enabled / Stars / Cancel.
Added a SuppressAutoArrival hand-off so an extension (AutoPilot+ launching to orbit) can keep the target
from auto-clearing on "arrival." This makes "launch to the planet you're standing on" work: the target is
held while the mecha climbs to orbit, and the extension clears it once there instead of it counting as an
instant arrival and disarming the launch.
0.2.2
Debug overlay now shows movement state (Walk/Drift/Fly/Sail), altitude above the local surface, and
horizontal speed — the values that gate the launch Fly->Sail transition — to aid AutoPilotPlus launch
diagnosis.
0.2.1
Fixed guidance not starting until AutoPilot was toggled: the game blanking indicatorAstroId to 0
no longer wipes your selection or disarms extensions.
Manual-input guard de-noised — only real strafe/forward/roll/climb input yields (ignores the jump
edge), with a small threshold; it now logs the actual input vector for diagnosis.
0.2.0
HUD can now be collapsed (title-only), closed (✕), and auto-hidden when not in space (config).
Reopen the HUD with a configurable hotkey (default F7).
HUD shows a button per registered extension (e.g. AutoPilot) to reopen its window.
Extension API: replaced unused ResetInput() with PanelLabel + TogglePanel().
0.1.0
Initial release. Clean rebuild of CruiseAssist for DSP 0.10.34+ / Unity 2022.3.
Velocity-slerp cruise steering toward a target star/planet while sailing.
Star list with Normal / History / Bookmark tabs; per-galaxy-seed persistence.
Stable INavigatorExtension API for AutoPilotPlus.
Improvements: RespectManualInput toggle, config-exposed tuning constants, verbose debug
logging and on-screen debug overlay, no IL transpiler.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.