game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new('Folder', player)
	leaderstats.Name = 'leaderstats'

	local Pet = Instance.new('Folder', player)
	Pet.Name = 'Pet'

	local coins = Instance.new("IntValue", leaderstats)
	coins.Name = 'Coins'
	coins.Value = 0

	player.CharacterAdded:connect(function(char)
		local attachment = Instance.new("Attachment", char.HumanoidRootPart)
		attachment.Name = "CharacterAt"

	end)
end)





game.ReplicatedStorage.Remotes.Add.OnServerEvent:Connect(function(player)
	local currency = 'Coins'
	local ammount = 1

	player.leaderstats[currency].Value = player.leaderstats[currency].Value +  ammount


end)  

game.ReplicatedStorage.RemoteFunctions.EquipPet.OnServerInvoke = function(player, pet)


	local currency = "Coins"
	local MainPet = game.ServerStorage.Pets:FindFirstChild(pet)

	if not player.Pet:FindFirstChild(MainPet.Name) then
		if player.leaderstats[currency].Value >= MainPet.Price.Value then
			player.leaderstats[currency].Value = player.leaderstats[currency].Value - MainPet.Price.Value
			local clonedPet = MainPet:Clone()
			local atPet = Instance.new("Attachment", clonedPet.PrimaryPart)

			local ap = Instance.new	("AlignPosition")
			ap.Parent = pet 
			ap.RigdigityEnabled = true 
			clonedPet.Parent = player.Character
			clonedPet:SetPrimaryPartCFrame(player.Character.Head.Cframe)
			ap.Attachment0 = atPet
			ap.Attachment1 = player.Character.HumanoidRootPart.CharacterAt




			return "Bought"
		else
			return "Not enough coins"

		end
	else
		return "Equip"
	end
end

Problem error ServerScriptService.Main:38: attempt to index nil with 'Name' - Server - Main:38

ServerScriptService.Main:38: attempt to index nil with 'Name' - Client - LocalScript:2 Local Script

script.Parent.MouseButton1Click:Connect(function()
	local result = game.ReplicatedStorage.RemoteFunctions.EquipPet:InvokeServer(script.Parent.Parent.Name)
end)

Note: The code stops at this line - if not player.Pet:FindFirstChild(MainPet.Name) then