How to make this script on the client side

  1. What do you want to achieve? i want to be able to make it so that you kick the ball on the client side instead of the server side where it moves for everyone and not just you

  2. What is the issue? i cant figure out how to and i made it to a local script doesnt work and since i am not a coder i really dont know how to convert it to client side

  3. What solutions have you tried so far? stated above

--Coded by samtheblender
--located in workspace (when i made it a local script it was in the player)
local Services = {
	Players = game:GetService("Players"),
	Debris = game:GetService("Debris")
	
}
local Settings = {
	Kick_Cooldown = 1,
	Kick_Force = 35
}
local Ball = script.Parent
local KickSound = Ball:WaitForChild("Kick")
local IgnoreTable = {}

Ball.Touched:Connect(function(Part)
	local Character = Part.Parent
	if not Character then
		return
	end
	local Player = Services.Players:GetPlayerFromCharacter(Character)
	local Humanoid = Character:FindFirstChildOfClass("Humanoid")
	local Root = Character:FindFirstChild("HumanoidRootPart")
	if not Player or not Humanoid or Humanoid.Health <= 0 or not Root or table.find(IgnoreTable, Player) then
		return
	end
	table.insert(IgnoreTable, Player)
	delay(Settings.Kick_Cooldown, function()
		if not Player then
			return
		end
		local Position = table.find(IgnoreTable, Player)
		if not Position then
			return
		end
		table.remove(IgnoreTable, Position)
	end)
	local Direction = CFrame.lookAt(Root.Position, Ball.Position).LookVector
	if Direction.Magnitude < 0.001 then
		return
	end
	local Velocity = Instance.new("BodyVelocity")
	Velocity.Parent = Ball
	Velocity.MaxForce = Vector3.new(1, 1, 1) * math.huge
	Velocity.Velocity = (Direction.Unit * Settings.Kick_Force) + Vector3.new(0, Settings.Kick_Force /1.05, 0)
	Services.Debris:AddItem(Velocity, 0.2)
	KickSound:Play()
end)

(script not made by me) (taken from model)

You can use localscripts to detect the kick and use a remote event to let the server know and apply the velocity.