In workspace
function script.UploadScore.OnServerInvoke(player)
local inv = player:WaitForChild("leaderstats") -- Whatever stats
local score = game:GetService("DataStoreService"):GetOrderedDataStore("TopScores") -- Name of Data Store
score:SetAsync(player.Name, inv:FindFirstChild("KOs").Value) -- What is in the leaderstats
print("Works4")
end
In serverscriptstorage
local ods = game:GetService("DataStoreService"):GetOrderedDataStore("Scores")
function updateBoard(board, data)
for k,v in pairs(data) do
local pos = k
local name = v.key
local score = v.value
local dispname = board:findFirstChild("Name"..pos)
local dispval = board:findFirstChild("Score"..pos)
dispname.Text = tostring(name)
dispval.Text = tostring(score)
print("Works1")
end
end
while true do
wait(10) -- Updates every 2 minutes
local pages = ods:GetSortedAsync(false, 10)
local data = pages:GetCurrentPage()
updateBoard(game.Workspace.HighScore.TopBlock.SurfaceGui, data) -- change 'game.Workspace.HighScore.TopBlock.SurfaceGui' to where it will be
print("Works2")
end
In StarterGui
wait(5)
local player = game.Players.LocalPlayer
while true do
game.Workspace.UploadScore:InvokeServer()
print("Works3")
wait(10)-- How long you want to usend
end
It dosent want to work. I have set a print so it prints something when it has started working. It only prints Works2 for some reason. I dont know whats wrong. Someone please help.
