BodyVelocity Stopping

You checked the part it’s parented to in the explorer and only one is found right? And deletes when W is released?

Yes, I’ve checked that many times

Are you sure that the velocity is destroyed?

I’m certain, I always check the explorer when testing.

Maybe a different BodyVelocity is being applied when this one gets destroyed. Are they any others that are created?

No, I checked this already, way before making this post

I just tried making a part with the exact same MaxForce as yours and changed the X to 5, then made a script to Destroy it and it still works. I have no idea why destroying it doesn’t work for you sorry :confused:

I’ll figure something out then, thanks anyway.

Can you show the local script where you detecting the input, and is the network owner of the ship the client or server? or are you using remote events?

I’m using UIS to detect when W is pressed, then setting a hold value to true, vice-versa for inputended to show when it’s released. Then i’m using RunService to check when holding is set to true or false.
Here is the run service function, where the remote is fired:

RunService.RenderStepped:Connect(function()
	if holdingW == true then
		local State = "holdingW"
		AddVelocityForward:FireServer(State)
		end
		if holdingW == false then
			local State = "notholdingW"
			AddVelocityForward:FireServer(State)	
	end
end)

Maybe only pass the AddVelocityForward when the button is pressed using InputService.

For loop through all parts of the character and set the velocity to vector3.new() aka 0.
And if you want to be extra sure that it stops, anchor the player’s rootpart as well.

Ok so it turns out, it doesn’t stop if there’s another body movement instance inside the part, when the velocity is on its own then it’ll stop but if it’s with let’s say a bodygyro then it won’t stop