Infinite yield possible on 'ReplicatedStorage:WaitForChild("Animations")' :     local RS = game:GetService("ReplicatedStorage")
local Event = Instance.new("RemoteEvent", RS)
Event.Name = "PunchEvent"

local function FiredEvent(Player)
	local Character = game.Workspace:WaitForChild(Player.Name)
	local Animation = RS:WaitForChild("Animations"):GetChildren()[math.random(1, #RS.Animations:GetChildren())]
	print(Animation)
	local RandomAnim = Character.Humanoid:LoadAnimation(Animation)
	RandomAnim:Play()
	local Damage = script.Damage:Clone()
	if Animation.Name == "Right Arm" then
		Damage.Parent = Character:WaitForChild("Right Arm")
	end
	Damage.Disabled = false
	wait(1.4)
	Damage:Destroy()
end

    Event.OnServerEvent:Connect(FiredEvent)[enter image description here][1]


  [1]: https://i.stack.imgur.com/Uy7U8.png