How to prevent boat from being flinged/boat ragdolled

You can write your topic however you want, but you need to answer these questions:

  1. I want to manage and keep my boat clean as possible, and doesn’t just fling after hitting a wall.

  2. Here’s the issue: https://gyazo.com/4fc449a2a85785b38a756a48a7189afa

3.I looked for solutions in the developer hub and seem to find none. Here is a snippet of the code that moves my boat, I don’t think this is the problem tho, I have to add something else to strengthen its anchor to the ground without making it buggy or flinged.

game:GetService("RunService").Heartbeat:Connect(function()
	if throttledir==1 then
		middlepoint.AssemblyLinearVelocity = Vector3.new(script.Parent.CFrame.LookVector.Unit.X*(30 + (lockspeed.Value*0.4)), 0--[[try to make it anchored to the ground going negative makes it more buggy]], script.Parent.CFrame.LookVector.Unit.Z*(30 + (lockspeed.Value*0.4)))
	elseif throttledir==-1 then
		middlepoint.AssemblyLinearVelocity = script.Parent.CFrame.LookVector.Unit*(-40)
	end

Could you possibly fix the rotation/angle of the boat?

I think the issue is that you are trying to move it with AssemblyLinearVelocity, but you don’t have an AlignOrientation | Roblox Creator Documentation in it (the replacement of BodyGyro).
Think of it like this: Throw a block of wood in a straight line with a certain force, with the block flying level with no rotation. Works great, right?
Now throw it at a wall with the same previous factors. It’ll spin like crazy after it hits the wall.
If you put an AlignOrientation in it with the properties set correctly it’ll dampen the flinging forces.

I built a boat that works on Terrain Water using just a VehicleSeat, a VectorForce for thrust, and a TorqueConstraint for steering.

Looks like a great suggestion! I’ll try it out.

On the second throttle, you do not set the y velocity to 0, so depending on the Look Vector, it may also fly off. Just a random note if his solution doesn’t work.