Symptom
Player crashes into the ocean at high speed and receives "Kerbin Splashdown" credit.
Root Cause
MissionTracker.cs:615-617 triggers splashdown on Vessel.Situations.SPLASHED with no speed check:
if (data.to == Vessel.Situations.SPLASHED && body == "Kerbin" && !v.isEVA)
ReportLocation("Kerbin Splashdown", grantScience: true);
KSP transitions to SPLASHED even during a destructive water impact. A 327 m/s ocean hit fires both SPLASHED (awarding splashdown) and onCrashSplashdown (awarding first crash) simultaneously.
Fix
Add a speed threshold to the splashdown check. KSP's survivable water landing speed is roughly 6 m/s for most pods. Check v.srfSpeed or v.verticalSpeed against a reasonable threshold (e.g., < 10 m/s) before awarding splashdown.
Alternatively, skip the splashdown award if onCrashSplashdown fires in the same frame for the same vessel.
Symptom
Player crashes into the ocean at high speed and receives "Kerbin Splashdown" credit.
Root Cause
MissionTracker.cs:615-617triggers splashdown onVessel.Situations.SPLASHEDwith no speed check:KSP transitions to
SPLASHEDeven during a destructive water impact. A 327 m/s ocean hit fires bothSPLASHED(awarding splashdown) andonCrashSplashdown(awarding first crash) simultaneously.Fix
Add a speed threshold to the splashdown check. KSP's survivable water landing speed is roughly 6 m/s for most pods. Check
v.srfSpeedorv.verticalSpeedagainst a reasonable threshold (e.g., < 10 m/s) before awarding splashdown.Alternatively, skip the splashdown award if
onCrashSplashdownfires in the same frame for the same vessel.