Inspired by LunaMultiplayer and DarkMultiPlayer for KSP1, this mod turns a KSP2 Redux campaign into a persistent shared universe hosted by a lightweight dedicated server.
| Feature | Details | |
|---|---|---|
| 🌍 | Shared universe | Everyone plays in one campaign. Launch, land, and leave craft that everyone else can see. |
| 🏠 | Join at the Space Center | New players spawn at the KSC with no active vessel — nobody gets dropped into someone else's cockpit. |
| 🔒 | Your vessel is yours | Server-granted control locks mean only the pilot can fly a craft. No hijacking. |
| 📡 | Real-time replication | Vessel state streams at 20 Hz (50 Hz under thrust) and is smoothly interpolated. Orbits sync by Keplerian elements, so map-view orbit lines are exact. |
| 🛰️ | Persistent vessels | The server remembers every launched craft. Log off and your station stays in orbit; late joiners see everything. |
| ⏱️ | Shared clock | A server-authoritative universe time keeps every client's orbits in phase. |
| 🔬 | Shared progress | Tech-tree unlocks and science reports sync to every player. |
| ⏩ | Warp voting | Speeding up time needs everyone's approval. Dropping to 1× is always instant. |
| 👥 | Player list & nameplates | See who's online, their ping, and floating names over their ships. |
Early alpha — actively being tested. The full stack is implemented, but expect rough edges and please read Known limitations. Bug reports with a
Player.logattached are the single most valuable contribution right now.
KSP2MultiplayerRedux_Release.zip from the Releases page.<KSP2 install>\mods\KSP2MultiplayerRedux\
├─ KSP2MultiplayerRedux.dll
├─ swinfo.json
└─ assets\KSP2MultiplayerRedux folder first.Ctrl + M — or click the Multiplayer app-bar button.7777 by default) and a display name → Join.💡 The first player to join an empty server seeds the universe from their own campaign.
Download KSP2MultiplayerServer_Release.zip from Releases, extract, and run:
KSP2MultiplayerServer.exe --port 7777 --max 8
Forward UDP 7777 on your router for internet play. Console commands: list, vessels,
save-status, kick <id>, quit. Everything else — config, persistence, Linux hosting —
is in docs/SERVER.md.
| Doc | What's inside |
|---|---|
| ARCHITECTURE.md | How the sync systems work and the design decisions behind them |
| PROTOCOL.md | Every network packet, field by field |
| SERVER.md | Hosting, configuration, console, persistence, NAT |
| BUILDING.md | Toolchain, project layout, release process |
| TROUBLESHOOTING.md | Log-line reference for diagnosing problems |
| CHANGELOG.md | Release history |
%USERPROFILE%\AppData\LocalLow\Intercept Games\Kerbal Space Program 2\Player.log$env:KSP2DIR = "C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program 2"
cd KSP2MultiplayerRedux; .\build_and_deploy.ps1 # mod → deploys to your game + zips
cd ..\KSP2MultiplayerServer; .\build_server.ps1 # server → dist\ + zip
Full details in docs/BUILDING.md.
Issues and pull requests are welcome. If you're changing anything on the wire, read
PROTOCOL.md first and bump the protocol version in both Constants.cs files.
MIT — see LICENSE. Bundles LiteNetLib (MIT); see THIRD_PARTY_NOTICES.md.
Raw stats are from the beginning of time until now. Each follower and download entry represents one hour of data. Uneventful hours are omitted.