diff --git a/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt b/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt index c0dd49ff..a68548ee 100644 --- a/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt +++ b/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt @@ -122,11 +122,11 @@ object EurekaConfig { // Instability scaled with mass and squared speed @JsonSchema(description = "Stronger stabilization with higher mass, less at higher speeds.") - var scaledInstability = 1000.0 + var scaledInstability = 70.0 // Unscaled linear instability cased by speed @JsonSchema(description = "Less stabilization at higher speed.") - var unscaledInstability = 0.271828 + var unscaledInstability = 0.1 @JsonSchema(description = "How fast a ship will stop and accelerate.") var linearMassScaling = 0.0002 diff --git a/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt b/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt index a74a6045..3880a71c 100644 --- a/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt +++ b/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt @@ -46,7 +46,9 @@ fun stabilize( ) ) - stabilizationTorque.mul(EurekaConfig.SERVER.stabilizationTorqueConstant) + val speed = ship.velocity.length() + + stabilizationTorque.mul(EurekaConfig.SERVER.stabilizationTorqueConstant / max(1.0, speed * speed * EurekaConfig.SERVER.scaledInstability / ship.mass + speed * EurekaConfig.SERVER.unscaledInstability)) forces.applyInvariantTorque(stabilizationTorque) if (linear) {