local y={[1323972481]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+5 return true end end;[1323974333]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+10 return true end end;[1323974716]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+50 return true end end,[1323979004]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+100 return true end end,[1323979357]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+500 return true end end,[1323979664]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+1000 return true end end;[1323980134]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+5000 return true end end;[1323980633]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+10000 return true end end,[1323980925]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+50000 return true end end;[1323981308]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+100000 return true end end;[1323981717]=function(y,s)local N=s:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local j=N if j then j.Value=j.Value+500000 return true end end}MarketplaceService.ProcessReceipt=function(s)local N=s.PlayerId..("\095"..s.PurchaseId)local j=false local v,E=pcall(function()j=purchaseHistoryStore:GetAsync(N)end)if v and j then return Enum.ProductPurchaseDecision.PurchaseGranted elseif not v then error("\068\097\116\097 \115\116\111\114\101 \101\114\114\111\114\058"..E)end local x=Players:GetPlayerByUserId(s.PlayerId)if not x then return Enum.ProductPurchaseDecision.NotProcessedYet end local M=y[s.ProductId]local R,Q=pcall(M,s,x)if not R or not Q then warn("\069\114\114\111\114 \111\099\099\117\114\114\101\100 \119\104\105\108\101 \112\114\111\099\101\115\115\105\110\103 \097 \112\114\111\100\117\099\116 \112\117\114\099\104\097\115\101")print("\n\080\114\111\100\117\099\116\073\100\058",s.ProductId)print("\n\080\108\097\121\101\114\058",x)return Enum.ProductPurchaseDecision.NotProcessedYet end local g,d=pcall(function()purchaseHistoryStore:SetAsync(N,true)end)if not g then error("\067\097\110\110\111\116 \115\097\118\101 \112\117\114\099\104\097\115\101 \100\097\116\097\058 "..d)end return Enum.ProductPurchaseDecision.PurchaseGranted end
-- Table setup containing product IDs and functions for handling purchases
local productFunctions = {
	[1323972481] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 5
			return true
		end
	end,

	[1323974333] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 10
			return true
		end
	end,

	[1323974716] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 50
			return true
		end
	end,

	[1323979004] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 100
			return true
		end
	end,

	[1323979357] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 500
			return true
		end
	end,

	[1323979664] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 1000
			return true
		end
	end,

	[1323980134] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 5000
			return true
		end
	end,

	[1323980633] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 10000
			return true
		end
	end,

	[1323980925] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 50000
			return true
		end
	end,

	[1323981308] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 100000
			return true
		end
	end,

	[1323981717] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 500000
			return true
		end
	end,
}

MarketplaceService.ProcessReceipt = function(receiptInfo)
	local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
	local purchased = false
	local success, errorMessage = pcall(function()
		purchased = purchaseHistoryStore:GetAsync(playerProductKey)
	end)

	if success and purchased then
		return Enum.ProductPurchaseDecision.PurchaseGranted
	elseif not success then
		error("Data store error:" .. errorMessage)
	end

	local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
	if not player then
		return Enum.ProductPurchaseDecision.NotProcessedYet
	end

	local handler = productFunctions[receiptInfo.ProductId]

	local success, result = pcall(handler, receiptInfo, player)
	if not success or not result then
		warn("Error occurred while processing a product purchase")
		print("\nProductId:", receiptInfo.ProductId)
		print("\nPlayer:", player)
		return Enum.ProductPurchaseDecision.NotProcessedYet
	end

	local success, errorMessage = pcall(function()
		purchaseHistoryStore:SetAsync(playerProductKey, true)
	end)
	if not success then
		error("Cannot save purchase data: " .. errorMessage)
	end

	return Enum.ProductPurchaseDecision.PurchaseGranted
end
