Need help with my grapple system

local DaredevilMod = require(game.ReplicatedStorage.Modules.DaredevilMod)
local Assets = game.ReplicatedStorage.Assets
local Remotes = game.ReplicatedStorage.Remotes
local Bool = false
local RunService = game:GetService("RunService")
local Heartbeat
local TweenService = game:GetService("TweenService")
local TweenInfo = TweenInfo.new(
	0.5,
	Enum.EasingStyle.Sine,
	Enum.EasingDirection.Out,
	0,
	false,
	0
)
local Debris = game:GetService("Debris")

local function Grapple(plr,Target)

	if Bool == false then
		Bool = true
		plr.Character.HumanoidRootPart.Anchored = true -- Hareket etmesin diye HumRoot Anchorlandı
		local Baton = Assets.Baton:Clone()

		Baton.Position = plr.Character:FindFirstChild("Right Arm").Position
		Baton.Parent = game.Workspace
		Baton.Anchored = false -- Batonu Doğru Yere Getirdik 	

		local BodyVel = Instance.new("BodyVelocity",Baton)
		BodyVel.Velocity = (Target.Position - Baton.Position).Unit * 50

		Heartbeat = RunService.Heartbeat:Connect(function()

			if (Baton.Position - Target.Position).Magnitude < 1.5 then

				BodyVel:Destroy()
				Baton.Anchored = true
				Heartbeat:Disconnect()

				local tweenChar = TweenService:Create(plr.Character.HumanoidRootPart, TweenInfo, {Position = Target.Position})
				plr.Character.HumanoidRootPart.CFrame = CFrame.lookAt(plr.Character.HumanoidRootPart.Position, Target.Position)

				tweenChar:Play()
				tweenChar.Completed:Wait()
				Baton:Destroy()
				plr.Character.HumanoidRootPart.Anchored = false
				Bool = false	

			end

		end)

	end

end

Remotes.Daredevil.OnServerEvent:Connect(Grapple)

This is the true original one