Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Why does value from datastore print nil?

Asked by 5 years ago

Hello, I have here a global leaderboard and on the script here:

Frame.Score.Text = tostring(v.Value)
                print(tostring(v.Value))

It prints nil, but should be printing 1. Here's the full script:

for i = 1, 10 do
    local Sam = script.Sample:Clone() 
    Sam.Name = i
    Sam.Parent = script.Parent.Frame.ScrollingFrame
    Sam.UserPos.Text = "[" .. tostring(i) .. "]"
    Sam.Score.Text = "Nil"
    Sam.Username.Text = ""
    Sam.LayoutOrder = i
    script.Parent.Frame.ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 50 * i)
end

function UpdateGui()
    for i, v in pairs(game.Players:GetChildren()) do
        local Data = tonumber(v.leaderstats.Prestige.Value)
        local DataStore = game:GetService("DataStoreService"):GetOrderedDataStore("PrestigeD")
        DataStore:SetAsync(v.UserId, Data)
    end
    local DataStore = game:GetService("DataStoreService"):GetOrderedDataStore("PrestigeD")
    local Pages = DataStore:GetSortedAsync(false, 10)
    local Data = Pages:GetCurrentPage()
    for k, v in pairs(Data) do
        if tonumber(v.key) >= 1 then
            local Frame = script.Parent.Frame.ScrollingFrame:FindFirstChild(tostring(k))
            if Frame then
                Frame.Username.Text = game.Players:GetNameFromUserIdAsync(v.key)
                Frame.Score.Text = tostring(v.Value)
                print(tostring(v.Value))
            end
        end
    end
end

while true do
    UpdateGui()
    wait(60)
end

I don't know why this happens, and yes that is the name of my datastore. If someone could tell me whats going on, that would be so helpful!

Answer this question