You are viewing a potentially older version of this package. View all versions.
LokiMoonLabs-BetterSphere-1.0.0 icon

BetterSphere

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

Date uploaded 9 hours ago
Version 1.0.0
Download link LokiMoonLabs-BetterSphere-1.0.0.zip
Downloads 15
Dependency string LokiMoonLabs-BetterSphere-1.0.0

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.

CHANGELOG

Changelog

1.0.0

  • First public release with Dyson rendering optimizations, launch visual controls, automatic sail cleanup and detailed Starmap views.
  • Document every setting and its default in the README.

0.3.20

  • Remove temporary FPS comparison modes, timing capture, and Starmap capture diagnostics.

0.3.19

  • Color remote deposits by their recorded resource type.

0.3.18

  • Draw remote oceans through the capture camera and accept natural models from custom planet themes.

0.3.17

  • Preserve remote natural objects when native material alpha has a different meaning in the Starmap shader.

0.3.16

  • Diagnostic comparison of actual remote ore meshes at ground level and raised above terrain.

0.3.15

  • Preserve the shader variant used to draw remote natural objects in batches and remove the diagnostic marker.

0.3.14

  • Diagnostic build with a temporary remote ore marker and capture pixel check.

0.3.13

  • Give remote natural objects dedicated Starmap materials and draw them independently of the active factory renderer.

0.3.12

  • Draw remote natural objects with Starmap-specific visibility and detail levels.

0.3.11

  • Include vegetation, rocks and ore deposits when focusing a remote planet in the Starmap.

0.3.10

  • Limit detailed Starmap rendering to the selected body or the planet Icarus is standing on.

0.3.9

  • Include vegetation, rocks and ore deposits in the local planet's Starmap capture. Factory machines are excluded.

0.3.8

  • Capture the local planet from its live terrain, water and foundation renderers for a closer Planet View match.

0.3.7

  • Render rocky planet terrain through the capture camera's native mesh and directional lighting pipeline.

0.3.6

  • Move the rocky planet capture camera closer as the Starmap zooms while preserving the disc framing.

0.3.5

  • Select Starmap terrain detail using map zoom and raise the planet capture sampling rate within the configured limit.

0.3.4

  • Render gas giants with the native gas globe material.
  • Write curved planet surface depth and give stars an opaque backing.

0.3.3

  • Add a toggle for Starmap planet clouds and atmosphere.
  • Keep star surface orientation independent of map camera rotation.

0.3.2

  • Match planet capture size to the native map globe and draw the atmosphere as a separate rim.
  • Use the native star surface with a dimmer map glow and prioritize large planet captures during camera movement.

0.3.1

  • Keep Settings sections expanded and add spacing above Starmap rendering.
  • Draw captured planet surfaces opaque while preserving the atmosphere blend outside the disc.

0.3.0

  • Add independent controls for real planets, adaptive planet resolution, real stars and starfield in the Starmap.
  • Defer Starmap visuals to CelestialMapRevamp when it is loaded.

0.2.16

  • Capture game CPU profiler categories in normal view and Planet View.

0.2.15

  • Let frame timing wait for Planet View and log capture transitions.

0.2.14

  • Add a timed Planet View comparison with FPS and available CPU and GPU timings.

0.2.13

  • Add a star-body comparison mode and log when the diagnostic reaches the local star renderer.

0.2.12

  • Add a temporary comparison for the local star halo and lens flare.

0.2.11

  • Upload only allocated node records during simulation ticks.
  • Skip construction noise shading on completed shell cells in normal play.

0.2.10

  • Cache node color conversions and skip redundant node uploads during normal-play drawing.

0.2.9

  • Register the renderer patches with Harmony and verify the draw hook at startup.

0.2.8

  • Add a temporary FPS comparison for shells versus frames and nodes.

0.2.7

  • Skip off-screen sphere preparation and omit unbuilt cells on large, stable layers in normal play.

0.2.6

  • Use a native Settings tab with collapsible groups in place of the overlay.

0.2.5

  • Cull off-screen shell sections and simplify distant shell geometry in normal play.
  • Add live toggles for both optimizations in Better Sphere settings.

0.2.4

  • Add an in-game Settings entry for the live launch visuals and automatic cleanup controls.

0.2.3

  • Reclaim solar sail memory after the last sails leave a swarm, including small batches, and log automatic cleanup.

0.2.2

  • Apply rocket, orbital sail and sail trail render limits in the starmap and Dyson Sphere Editor.
  • Automatically compact sail memory after enough slots empty, with a launch activity check and a cooldown.

0.2.1

  • Start capped vertical silo exhaust on actual launches and return the visual to idle after cooldown.

0.2.0

  • Add separate render limits for construction rockets, orbital sails and sail trails.
  • Add approximate vanilla animation cadence for accelerated rail ejectors and vertical silos.

0.1.0

  • Initial Better Sphere test build based on SphereOpt.
  • Update renderer bindings for Dyson Sphere Program 0.10.35.29151.
  • Reduce rendering work for hidden layers and reuse GPU buffers as shells grow.
  • Add independent normal-play controls for solar swarm and construction rocket visibility.