


A tiny BepInEx plugin for Dyson Sphere Program that serves your live game state over a localhost HTTP server, so the DSP Ultimate Suite planner can show Live mode: your real research progress, plan-vs-actual production rates, and exact blueprint footprints.
The plugin is optional. The planner works fully without it — Live mode just lights up the features that compare the plan to your running factory.
dsp-planner-plugin.zip from the
latest release.…\Dyson Sphere Program\BepInEx\plugins\DSPPlannerExport.dll.DSP Planner Export: serving http://localhost:8765/state, /protos, /ratesOpen the planner at https://skieller-software.github.io/dsp-ultimate-suite/ with the game running:
| Endpoint | Data |
|---|---|
GET /state |
researched tech / upgrade levels |
GET /protos |
full item/building proto dump (footprints, z-step, sorter slots) |
GET /rates |
cumulative production/consumption counters (→ items/min) |
GET /deficits, /events (SSE), /config |
live deficits, push updates, settings |
The HTTP thread never touches Unity objects — the main thread refreshes JSON snapshots
~once per second and the listener serves the latest strings (thread-safe). The page
fetches http://localhost from the planner because the plugin sends
Access-Control-Allow-Origin: *.
CI can't build this (it needs the game's assemblies), so releases are built locally.
Prerequisites: BepInEx 5.x in your DSP install, and the .NET SDK.
dotnet build -c Release -p:DSPManaged="C:\…\Dyson Sphere Program\DSPGAME_Data\Managed"
BepInEx + HarmonyX restore from the official BepInEx NuGet feed (see nuget.config) as
compile-time references; the game's BepInEx install provides them at runtime. Only the
game-install path is machine-specific — edit DSPManaged in the .csproj or pass it on
the command line. Copy bin\Release\DSPPlannerExport.dll into BepInEx\plugins\.
Port in Plugin.cs, or run the game once as administrator./rates counters reset when the plugin reloads; the planner detects the tick going
backwards and re-seeds automatically.Built against DSP on Unity 2022.3 (verified 2026-06). If a future game patch renames an API, the compiler points at the exact spot; the planner side needs no change.
MIT — see LICENSE.