Datastore help with Donation Leaderboard in Gui

I am making a Donation Leaderboard in a Gui
I have a Script and a Script Module for the Gui

Script Code:

local MarketplaceService = game:GetService("MarketplaceService")

local DataStoreService = game:GetService("DataStoreService")
local DSLB = DataStoreService:GetOrderedDataStore("BoardgameDonationData")

local PurchaseRemote = Instance.new("RemoteEvent", game:GetService("ReplicatedStorage"))
PurchaseRemote.Name = "Purchase"

local UpdateLeaderboard = Instance.new("RemoteEvent", game:GetService("ReplicatedStorage"))
UpdateLeaderboard.Name = "UpdateLeaderboard"

local Template = script.Template

local DevProductsIDs = require(script.DevProductsIDs)
local IDs = DevProductsIDs.IDs

local Config = {
	WaitToLoad = 3,
	AmountOfPlayers = 15,
	ShowUserThumbnail = true
}

function ProcessReceipt(receiptInfo)
	DSLB:IncrementAsync(receiptInfo.PlayerId, receiptInfo.CurrencySpent)
	return Enum.ProductPurchaseDecision.PurchaseGranted
end

MarketplaceService.ProcessReceipt = ProcessReceipt

PurchaseRemote.OnServerEvent:Connect(function(Player, nothing, ID)
	warn(Player)
	warn(ID)
	MarketplaceService:PromptProductPurchase(Player, ID)
end)

local function ReLoad(Player)
	if Player then
		print(Player)
		local Data = DSLB:GetSortedAsync(false, Config.AmountOfPlayers)
		UpdateLeaderboard:FireClient(Player, Data)
	end
end


game:GetService("Players").PlayerAdded:Connect(function(Player)
	while task.wait(0) do
		task.wait(Config.WaitToLoad)
		ReLoad(Player)
	end
end)

Module code:

local DonationLeaderboard = {}

local MarketplaceService = game:GetService("MarketplaceService")

local PurchaseRemote = game:GetService("ReplicatedStorage"):WaitForChild("Purchase")
local UpdateLeaderboard = game:GetService("ReplicatedStorage"):WaitForChild("UpdateLeaderboard")

local Config = {
	WaitToLoad = 15,
	AmountOfPlayers = 15,
	ShowUserThumbnail = true
}

local Template = script.Template

function DonationLeaderboard.LoadBoard(MainScreenGui)
	if MainScreenGui:IsA("ScreenGui") then
		local Player = game.Players.LocalPlayer
		
		local ShopFrame = MainScreenGui.ShopFrame
		local DonationsFrame = ShopFrame.DonationsFrame	
		
		local DonationLeaderboard = DonationsFrame.DonationLeaderboard
	
		UpdateLeaderboard.OnClientEvent:Connect(function(Player, Data)
			
			warn(Data)
			
			local WinPage = Data:GetCurrentPage()
			
			for Rank, data in ipairs(WinPage) do
				local userName = game.Players:GetNameFromUserIdAsync(data.key)
				local Name = userName
				local amount = data.value
				local isOnLeaderboard = false

				if amount > 0 and isOnLeaderboard == false  then
					local TemplateClone = Template:Clone()
					TemplateClone.PlayerName.Text = Name
					TemplateClone.RobuxDonated.Text = coroutine.wrap(NumberConvert)(amount)
					TemplateClone.LayoutOrder = Rank
					TemplateClone.Name = Name
					TemplateClone.Parent = DonationLeaderboard
					if Config.ShowUserThumbnail.Value then
						TemplateClone.PlayerImage.Image = game.Players:GetUserThumbnailAsync(data.key, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
					else
						TemplateClone.PlayerImage:Destroy()
					end
					local color = nil
				end	
			end
		end)
		
	end
end

return DonationLeaderboard

When I Fire the client in the script I put the DataStore but it shows an error

local function ReLoad(Player)
	if Player then
		print(Player)
		local Data = DSLB:GetSortedAsync(false, Config.AmountOfPlayers)
		UpdateLeaderboard:FireClient(Player, Data)
	end
end

Captura de pantalla 2023-10-01 133849
How can i fix it?

I’m leaving this comment here so I can go back to help, I’m looking at your leaderboard and my leaderboard script

Can you send me a snippet on where the error gets?