How do I use rocket propulsion on a moving object?

I’m trying to set a max speed for an unanchored part. I’m using rocket propulsion but the object still moves at a faster speed than what I set it to. The part moves due to player collision which is part of the game. I don’t want the object going too fast though. Is there any other options or am I using rocket propulsion wrong?

(I tried setting max speed to 1)
Thanks!

1 Like

I don’t believe that RocketPropulsion can set a MaxSpeed overall, the MaxSpeed is only for how fast it reaches it’s Target.

The only method I can think of right now is using GetPropertyChangedSignal for Velocity and clamping it:

Part:GetPropertyChangedSignal("Velocity"):Connect(function()
    local velocity = Part.Velocity --// The current Velocity of the Part
    local clampedX = math.clamp(velocity.X, -1, 1) --// Clamp the X
    local clampedY = math.clamp(velocity.Y, -1, 1) --// Clamp the Y
    local clampedZ = math.clamp(velocity.Z, -1, 1) --// Clamp the Z
    
    Part.Velocity = Vector3.new(clampedX, clampedY, clampedZ) --// Set the Velocity to all of the axis clamped
end)

This may be innefficient or jittery though.

Tested it but it didn’t work, I added a print and nothing got printed. It’s not noticing the change in velocity.

GetPropertyChangedSignal doesn’t fire for Velocity.

Edit:
Using RunService, but yeah it’s too jittery to be used.