Projekt · Nachbau & Anleitung · Stand 26.09.2026

Munfalke 1 zum Nachbauen

Der Munfalke-1-Beitrag zeigt die Flugdaten des automatischen Mün-Rundflugs. Diese Seite liefert das Handwerkszeug dazu: die Rakete als Craft-Datei, den vollständigen Steuerungscode und eine Anleitung, wie kRPC, Python und die Rakete zusammenspielen, damit der Flug bei jedem, der es ausprobieren möchte, genauso losgeht.

  • Spiel Kerbal Space Program 1.12.5
  • Mod kRPC 0.6.0 (Server-Plugin und Python-Client, exakt gleiche Version)
  • Sprache Python 3 (getestet mit 3.13)
  • Status eigener Entwurf, Rückflug-Teil experimentell

Zusammenfassung

  • Drei Dateien reichen. Die Craft-Datei für die Rakete, ein einzelnes Python-Skript für die Flugsteuerung und eine Zeile requirements.txt für die Abhängigkeit.
  • kRPC ist die Brücke. Ein Mod öffnet in KSP einen lokalen Server, das Python-Skript verbindet sich als Client dazu – Server- und Client-Version müssen exakt übereinstimmen (0.6.0).
  • Das Skript liest zuerst, bevor es steuert. Ohne --execute zeigt es nur den erkannten Flugzustand an. Das eignet sich als erster Verbindungstest, ohne dass etwas passieren kann.
  • Orbit ist der erprobte Teil. --goal orbit (Standard) bringt die Rakete zuverlässig in den Mün-Orbit. Landung und Rückflug (--goal land / --goal return) sind experimentell, siehe Grenzen.

Downloads

Alle drei Dateien liegen direkt auf diesem Server, keine externen Links außer für den Mod selbst (dazu mehr im nächsten Abschnitt).

DateiInhaltGröße
Munfalke-1.craftDie Rakete selbst: 6 Stufen, 39 Bauteile, ein Sitzplatz. Gehört in den VAB-Ordner eines Spielstands.55 KB
munfalke_autoflight.pyDer vollständige Steuerungscode, rund 1050 Zeilen, ohne weitere eigene Module. Liegt aus Sicherheitsgründen serverseitig als .txt, kommt aber unter dem Namen munfalke_autoflight.py an.51 KB
requirements.txtEine Zeile: die exakte kRPC-Client-Version für pip install -r.<1 KB

Craft und Code sind ein eigener Entwurf und stehen hier zum privaten Nachbauen und Ausprobieren zur Verfügung.

Mod installieren: kRPC

kRPC ist ein KSP-Mod, der einen Server im Spiel öffnet. Ein externes Programm – hier das Python-Skript – verbindet sich per TCP dazu, liest Fahrzeugdaten aus und sendet Steuerbefehle, während KSP normal weiterläuft.[1] Der Mod ist nicht Teil dieser Downloads, sondern kommt direkt vom Projekt selbst:

  1. kRPC 0.6.0 von der offiziellen Release-Seite herunterladen: github.com/krpc/krpc, Release v0.6.0. Das Archiv enthält einen GameData-Ordner.
  2. Dessen Inhalt in <KSP-Installationsordner>/GameData kopieren.
  3. KSP starten. Im Hauptmenü unter den Add-ons prüfen, ob kRPC geladen ist.
  4. Einen Spielstand laden oder anlegen, dann über das kRPC-Symbol das Server-Fenster öffnen.
  5. Protobuf over TCP wählen, Adresse localhost, Standardports 50000 (RPC) und 50001 (Stream) belassen, dann Start Server anklicken. Die Anzeige wird grün.
Version muss exakt passen

Das Skript prüft beim Verbinden ausdrücklich, ob sowohl der Server als auch der installierte Python-Client Version 0.6.0 melden, und bricht sonst mit einer klaren Fehlermeldung ab. Eine neuere kRPC-Version zu installieren reicht also nicht – Server-Mod und Python-Paket müssen dieselbe Versionsnummer tragen.

Python-Umgebung einrichten

Getestet unter Linux (Pop!_OS) und Windows, mit Python 3.13. Eine virtuelle Umgebung ist nicht zwingend, aber empfehlenswert:

python3 -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

Das installiert genau ein Paket: den kRPC-Python-Client in Version 0.6.0, passend zum Server-Mod aus dem vorigen Abschnitt.

Die Rakete auf die Startrampe bringen

Das Skript steuert ein Fahrzeug, das bereits auf der Startrampe steht – es startet keine neue Rakete aus der Werkstatt heraus. Dafür muss die Craft-Datei einmal von Hand ins Spiel:

  1. Munfalke-1.craft in den Ships/VAB-Ordner des gewünschten Spielstands kopieren, z. B. <KSP>/saves/<Spielstandname>/Ships/VAB/.
  2. In KSP die Fahrzeugmontage (VAB) öffnen, Munfalke-1 laden.
  3. Auf Launch klicken. KSP weist dabei automatisch einen verfügbaren Kerbal dem freien Sitzplatz zu.
  4. Auf der Startrampe stehen bleiben (nicht selbst zünden) – von hier übernimmt das Skript.

Der Steuerungscode erkennt den Flugzustand bei jedem Aufruf neu aus Höhe, Bahn, aktueller Stufe und Aufenthaltsort, nie aus einer eigenen Fortschrittsdatei. Steht die Rakete korrekt startbereit auf dem Pad (Stufe 6, „vor dem Start“), erkennt es die Phase launch und übernimmt dort.

Das Skript starten

Erster Aufruf immer ohne --execute – das verbindet sich nur, liest den Zustand aus und steuert nichts:

python munfalke_autoflight.py

Das gibt eine Zeile mit dem aktuell erkannten Flugzustand aus (z. B. „launch“, wenn die Rakete startbereit auf dem Pad steht). Passt das, geht es mit --execute wirklich los:

# Standard: bis in den Mün-Orbit, gut erprobt
python munfalke_autoflight.py --execute

# experimentell: zusätzlich landen
python munfalke_autoflight.py --execute --goal land

# experimentell: landen, wieder starten, zur Kerbin-Landung zurückkehren
python munfalke_autoflight.py --execute --goal return

Weitere Optionen: --address, --rpc-port und --stream-port, falls der kRPC-Server nicht auf dem lokalen Standard läuft. Läuft das Skript einmal mit --execute, warpt es selbstständig durch Wartezeiten, richtet vor jedem Manöver aus, zündet und protokolliert jeden sicherheitsrelevanten Schritt als eine Zeile JSON in logs/munfalke-autoflight-<Zeitstempel>.jsonl – dieselbe Art Protokoll, die dem Datenanalyse-Beitrag zugrunde liegt. Ein Abbruch mit Strg+C versucht, die Triebwerke sauber abzuschalten, statt einfach die Verbindung zu kappen.

Grenzen und Warnungen

  • Landung und Rückflug sind weniger erprobt als der Orbit-Teil. Beide sind grundsätzlich geflogen worden, aber mit weniger Wiederholungen als der reine Aufstieg in den Mün-Orbit.
  • Keine Bahn-Interpolation, sondern Suche. Der Transfer zum Mün wird nicht exakt vorausberechnet, sondern durch Ausprobieren vieler Zündzeitpunkt-Kombinationen gefunden. Das kostet etwas Zeitraffer-Rechenzeit, ist aber robuster als ein starrer Hohmann-Ansatz.
  • Eigener Spielstand empfohlen. Das Skript greift auf den gerade aktiven Kerbin-Spielstand zu und startet/landet Fahrzeuge darin. Für erste Versuche eignet sich ein eigener, nicht wichtiger Spielstand.
  • Kein Autopilot-Mod nötig oder unterstützt. Die Steuerung erfolgt ausschließlich über kRPC-Aufrufe aus dem Skript selbst; ein zusätzlicher Autopilot wie MechJeb wird nicht benötigt und sollte während des Skriptlaufs nicht gleichzeitig eingreifen.

Quellen

  1. kRPC – Fernsteuerung für Kerbal Space Program, Version 0.6.0. github.com/krpc/krpc, Dokumentation unter krpc.github.io/krpc.
  2. Squad/Private Division: Kerbal Space Program. kerbalspaceprogram.com.

Die Flugdaten und Grundformeln zu einem tatsächlich geflogenen Rundflug mit dieser Rakete und diesem Code stehen im Munfalke-1-Datenbeitrag.