Hello. I had this problem with the ownit script. When you go near a vehicle when the Ownit script is enabled in there, it flings the player. This is a common bug with it.
Script:
function onTouched(part)
local h = part.Parent:FindFirstChild("Humanoid")
if (h ~= nil) then
script.Parent.Parent.Parent = h.Parent
end
end
script.Parent.Touched:connect(onTouched)
At any point are you adding Velocity to this vehicle? If you give a part velocity on the client side (via local script) then when it’s handled on the server that velocity may still exist
But doesn’t Roblox automatically give networkownership to the closest player? If not you can script it to make whatever player you want the owner as @curtisornot suggested.
I’ve never heard of the Ownit script before.
If you sit in the VehicleSeat you definitely get NetworkOwnership of it.
Disable the script and see if it happens. Check the Part that the layer is touching to see what the Velocity value is on that Part.
Sometimes moving vehicles get a Velocity in their Parts. It’s why when you walk on top of them it’ll act like a conveyor belt.
Have you read through this post? I used to have fling issues until i stopped parenting vehicle or vehicle seats to the player, but this poster had another solution:
Then don’t use the script.
I don’t see why you need it.
There is a setting in Studio that you can turn on that shows you the NetworkOwnership of items in the game while you’re testing. It’ll highlight your avatar with a colour, and when you walk around it’ll show you when your character takes over NetworkOwnership. Try that.
Or, just check using a function like this: VehicleSeat:GetPropertyChangedSignal(Occupant)
to see when the player leaves the VehicleSeat when the Occupant is removed. A similar way to do it is to see if the VehicleSeat.SeatWeld is destroyed.
If you want the vehicle to ‘despawn’ then when the above Property changes destroy the vehicle Model. If you want it to wait a bit then just throw a task.wait(2) or whatever to delay when the vehicle is destroyed.