Animations not running on server

At first I played an animation on the client, and it worked like a charm. However, it only works locally and is not playing on the server. So I tried using a remote event to play the animation on the server, but it is not playing at all now. What is the problem?

Client Side:

--Global Variables
local player = game.Players.LocalPlayer
local sign = script.Parent.Parent
local character = player.Character or player.CharacterAdded:Wait()
local mouse = player:GetMouse()
local handle = sign:WaitForChild("Handle")
local equipped = false
local mouseDown = false
local animationDebounce = true

--Folders
local Animations = sign:WaitForChild("Animations")
local Configurations = sign:WaitForChild("Configurations")
local RemoteEvents = sign:WaitForChild("RemoteEvents")

--Animation Tracks
local Swinging = Animations:WaitForChild("Swinging")

--Animations
local SwingTrack

--Remotes
local PlayAnimation = RemoteEvents:WaitForChild("PlayAnimation")

--Configurations
local Damage = Configurations:WaitForChild("Damage")
local CanDamage = Configurations:WaitForChild("CanDamage")

local function unequipSign()
	equipped = false
	
	if SwingTrack then
		SwingTrack:Stop()
	end
end

sign.Equipped:Connect(function()
	equipped = true
	
	sign.Activated:Connect(function()
		if animationDebounce then
			mouseDown = true
			PlayAnimation:FireServer()
			
			animationDebounce = false
			wait(2)
			animationDebounce = true
		end
	end)
	
	mouse.Button1Up:Connect(function()
		mouseDown = false
	end)
end)

sign.Unequipped:Connect(unequipSign)

Server Side:

--Global Variables
local player
local sign = script.Parent.Parent
local handle = sign:WaitForChild("Handle")
local debounce = true

--Folders
local Configurations = sign:WaitForChild("Configurations")
local Animations = sign:WaitForChild("Animations")
local RemoteEvents = sign:WaitForChild("RemoteEvents")

--Remotes
local PlayAnimation = RemoteEvents:WaitForChild("PlayAnimation")

--Animations
local Swinging = Animations:WaitForChild("Swinging")

--Animation Tracks
local SwingTrack

local function hitReceived(part)
	if Configurations:WaitForChild("CanDamage").Value then
		if debounce then
			local humanoid = part.Parent:FindFirstChild("Zombie")
			local damage = Configurations:WaitForChild("Damage")
			
			if humanoid then
				humanoid:TakeDamage(damage.Value)
			end
		end
		
		debounce = false
		wait(1)
		debounce = true
	end
end

local function playAnimation(player)
	local character = player.Character or player.CharacterAdded:Wait()
	local humanoid = character:WaitForChild("Humanoid")
	
	local SwingTrack
	local Swinging = Animations:WaitForChild("Swinging")
	
	pcall(function()
		SwingTrack = humanoid:LoadAnimation(Swinging)
		SwingTrack.Priority = Enum.AnimationPriority.Action
	end)
	
	SwingTrack:Play()
end

sign.Sign.SignHead.Touched:Connect(hitReceived)
PlayAnimation.OnServerEvent:Connect(playAnimation)

If your playing animations through the client, everyone should still be able to see them.

Its not replicating to the server though, how do I fix that? I tried using a remote event to make it replicate to the server and nobody but the client sees the animation.