Network ownership not preventing the ball lagging

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

  1. What do you want to achieve?
    To make a smooth ball not lagging when the ball is thrown.

  2. What is the issue?
    The ball stutters a few seconds after throwing the ball.
    (I can’t send a video since my laptop is pretty bad in recording but you can see the issue in the place):
    fmp beta dev pitch - Roblox
    To replicate the issue say :pb in chat to spawn a ball in, equip the TI tool and press F right at the ball to pick it up. Then hold LMB to throw the ball and release to release the ball throw.
    You can also replicate the issue by equipping the GK tool and pressing F as well then holding T and releasing it.
    The issue is quite rare but it can be very annoying.
    When it does happen the ball doesn’t stop lagging and sometimes breaks react (basically every other tool’s keybind for the ball to react.)
    It can be fixed by using normal GK react on it (for example GK tool + C)

  3. What solutions have you tried so far?
    I’ve given network ownership more than once to the ball when throwing/picking up the ball and I know the player has network ownership of the ball since the Player is the Value of the object value of the ball which replicates the network ownership.

If you need to see the script of anything then please LMK and I’ll send it.

Set network ownership to the player that is the current owner of the ball, If there is no defined owner then the ball will constantly change its network owner to whoever the closest player is

In the network ownership script, it sets the network owner before defining Owner Value:

Event.OnServerEvent:Connect(function(player, ball)
	if ball.Name ~= "TPS" then return end
	
	
	
	Grass(ball)

	
	ball:SetNetworkOwner(player)
	ball.Owner.Value = ball:GetNetworkOwner()
	
	ReactBubble(player, ball)
end)

Firstly this is very is to exploit allowing for exploiters to do several things such as ruining a match by applying BV/changing values and since they can spam the event for setting owner itll visibly show for everyone. Secondly you’re only showing me an event, Are you saying this is fired when the player picks up the football?

On your first point, there’s magnitude checks and an anti remote spam that I didn’t send within the script because I didn’t think it was important.

Also, the event is being fired when the ball is being picked up.