LokiMoonLabs-BetterSphere icon

BetterSphere

Optimizes Dyson sphere rendering and sail memory, controls launch visuals, and adds detailed planets and stars to the Starmap.

Last updated 9 hours ago
Total downloads 14
Total rating 0 
Categories Dyson Optimization
Dependency string LokiMoonLabs-BetterSphere-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

xiaoye97-BepInEx-5.4.17 icon
xiaoye97-BepInEx

BepInEx5.4.17 mod plugin framework, Mod框架

Preferred version: 5.4.17

README

Better Sphere

Loki Moon Labs · 1.0.0 · Built against Dyson Sphere Program 0.10.35.29151

Better Sphere continues Andy’s SphereOpt renderer for Dyson shells, frames and nodes. It also controls launch effects, automatically reclaims unused solar sail memory and adds detailed views of focused planets and stars in the Starmap.

Setup

Disable Andy’s SphereOpt in the same profile before enabling Better Sphere. Both replace the same Dyson renderer. Open Settings → Better Sphere to adjust the controls below. In-game changes apply immediately and save to BepInEx/config/LokiMoonLabs.BetterSphere.cfg. Run the game once to generate that file and close the game before editing it manually. Defaults below apply to a fresh config. Existing profiles keep their saved values.

Launch visuals

The hide switches apply during normal play. The three numeric limits also apply in the Starmap and Dyson Sphere Editor. These settings affect what is drawn. Launch timing, item consumption, construction and power generation continue as usual.

Setting Default How it works
Hide solar sails in normal play (HideSolarSails) Off Hides the solar swarm’s near and distant visuals during normal play. Sails continue to fly, orbit and absorb into the sphere.
Hide construction rockets in normal play (HideConstructionRockets) Off Skips construction rocket drawing and render preparation during normal play. Rockets still launch, travel and build the sphere.
Vanilla launcher animations (VanillaLauncherAnimations) On Brings the visible motion of accelerated EM Rail Ejectors and Vertical Launching Silos closer to the stock animation cadence. Silo exhaust plays on a subset of actual launches and fades after the normal cooldown. The machines retain their actual launch rate.
Visible rockets per star (VisibleRocketLimit) 512 Limits visible construction rockets in a star system. Lower values reduce visual density during heavy construction. Set to 0 for the game’s full draw count.
Visible orbital sail slots per star (VisibleSailLimit) 4096 Limits the orbital sail slots the renderer reads for a star. Empty slots can make the visible count lower than the limit. Set to 0 for the full draw count.
Visible sail trail slots per star (VisibleSailTrailLimit) 64 Limits slots used to draw the trails of sails in flight. This control is separate from orbital sails. Set to 0 for the full draw count.

Sphere rendering and sail memory

Setting Default How it works
Cull off-screen sphere geometry (CullOffscreenShells) On Skips drawing work when the entire sphere is outside the normal-play camera view. Large shell layers can also skip off-screen sections when at least a quarter of their cells can be omitted.
Simplify distant shell geometry (SimplifyDistantShells) On Uses four triangles per cell instead of six for distant shells when cells cover at most about two pixels in normal play. Close views and the editor retain the original mesh.
Automatically optimize sail memory (AutoOptimizeSolarSails) On Runs the same cleanup as the editor’s Optimize Solar Sails Memory button when a swarm drains or enough sail slots become unused. It checks every five in-game seconds and runs at most once per 30 in-game seconds across the save. A drained swarm can qualify once no sails remain in flight and memory can be reclaimed. A partially active swarm needs at least 4,096 empty slots, at least half of its used range empty and at most 64 sail flights in progress. Cleanup can cause a brief hitch.
Skip unbuilt shell cells (SkipUnbuiltShellCells) On Omits zero-progress cells from large shell layers in normal play when at least a quarter of the cells are invisible and construction has settled. While the layer is changing, it uses the full buffer so newly built cells can appear.
Optimize node uploads (OptimizeNodeUploads) On Reuses unchanged node colors and sends only the changed range of colors to the GPU during normal-play rendering.
Optimize simulation node uploads (OptimizeNodeTickUploads) On Sends the active range of node data to the GPU during simulation ticks, omitting unused buffer capacity. This is separate from the rendering-time color optimization.
Optimize completed shell shader (OptimizeCompletedShells) On Skips the construction-noise calculation for finished shell cells in normal play. Unfinished cells retain their construction effect.
Use instanced renderer (UseInstancedRenderer, config only) On Enables Better Sphere’s replacement renderer for shells, frames and nodes. Set it to false and restart to use the game’s sphere renderer. Launch controls, automatic sail memory cleanup and the Starmap controls are registered separately.

If LossyCompression is installed, Better Sphere suspends its shell lazy-loading hooks for the session when the replacement renderer starts. Save compression remains available.

Starmap rendering

Setting Default How it works
Real planets (RealPlanets) On Uses a detailed view for the focused planet, or for the planet Icarus is standing on when no body is focused. Rocky worlds show terrain, oceans where present, vegetation, rocks and color-coded ore deposits. Production machines are excluded. The local view uses the live surface and can show foundations. A remote view uses saved natural objects when available and generated planet data otherwise. Gas giants use the game’s gas globe material. Unfocused bodies use stock visuals, and the stock globe is also used while detailed terrain loads or when a planet is too small on screen.
Planet resolution limit (PlanetResolution) 2048 Sets the ceiling for the detailed planet’s render texture. Choose 256, 512, 1024, 2048, 4096 or 8192. The mod selects a size within that ceiling based on how large the planet appears. Raising the limit lets close views show more detail and can increase GPU load and graphics memory use.
Real stars (RealStars) On Draws the game’s star surface for the focused star at close range. Distant stars, black holes and neutron stars use their stock visuals.
Starfield (Starfield) On Shows the game’s background starfield behind the map. This is independent of the named stars and planets you can select.
Planet atmosphere (PlanetAtmosphere) On Shows the atmosphere rim and cloud layer where those assets are available for a detailed rocky planet. Turn it off for a clear view of terrain and oceans. Gas giants keep their native bands.

Better Sphere leaves Starmap rendering to CelestialMapRevamp when that mod is loaded. Its Dyson rendering and launch options remain available.

Credits

Based on Andy's SphereOpt, including its original shader bundle and a modified shell shader, under the Unlicense. Includes Mattias Edlund's UnityMeshSimplifier under the MIT license. Both licenses are packaged.

Report a bug · Existing reports

AI Development Disclosure

AI assisted with the Better Sphere code changes, compatibility inspection, automated checks, packaging and documentation. The renderer and shader bundle originate from Andy's SphereOpt. The package uses the existing Loki Moon Labs branding.