Preventing sling from hiding and showing on all players

I made a sling script but right now when I equip and unequip the sling hides and shows on everyone’s character. How can I prevent this?

LocalScript:

local tool = script.Parent
local repStorage = game.ReplicatedStorage
local event1 = repStorage.CustomEvents.SlingEquip
local event2 = repStorage.CustomEvents.SlingUnequip

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hum = char.Humanoid or char:WaitForChild("Humanoid")

tool.Equipped:Connect(function(char, hum)
	
	event2:FireServer()
	
end)

tool.Unequipped:Connect(function(char, hum)

	event1:FireServer()

end)

ServerScript:

local repStorage = game.ReplicatedStorage
local players = game:GetService("Players")
local event1 = repStorage.CustomEvents.SlingEquip
local event2 = repStorage.CustomEvents.SlingUnequip

event1.OnServerEvent:Connect(function(char, hum)

	local slingModel = repStorage.SlingAccessories.RifleSling
	local slingClone = slingModel:Clone()

	hum:AddAccessory(slingClone)

end)

event2.OnServerEvent:Connect(function(char, hum)

	local slingModel = char:FindFirstChild("RifleSling")

	if slingModel:IsA("Accessory") then

		slingModel:Destroy()

	end	
end)

You need to define which player is going to equip and unequip the sling. Add the player through the remote.

Use hum:FindFirstChild(“RifleSling”) to see if that player has the sling equipped.