I recently improvised a leaderboard script;

And the error is; Players:GetNameFromUserId() failed because HTTP 404 (NotFound)

local DataStoreService = game:GetService("DataStoreService")

local WinsLeaderboard = DataStoreService:GetOrderedDataStore("WinsLeaderboard")

local function updateLeaderboard()

local success, errorMessage = pcall (function()


local Data = WinsLeaderboard:GetSortedAsync(false, 5)

local WinsPage = Data:GetCurrentPage()
for Rank, data in ipairs(WinsPage) do


 local userName = game.Players:GetNameFromUserIdAsync(tonumber(data.key))

 local Name = userName

 local Wins = data.value

 local isOnLeaderboard = false

for i, v in pairs(game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder:GetChildren()) do
  if v.Player.Text == Name then

    isOnLeaderboard = true
           
 break
      end
end

if Wins and isOnLeaderboard == false then
local newLbFrame = game.ReplicatedStorage:WaitForChild("LeaderboardFrame"):Clone()

   newLbFrame.Player.Text = Name

   newLbFrame.Wins.Text = Wins 

    newLbFrame.Rank.Text = "#"..Rank

   newLbFrame.Position = UDim2.new(0, 0, newLbFrame.Position.Y.Scale + (.08 * #game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder:GetChildren()), 0)
                            newLbFrame.Parent = game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder
                     end
              end
      end)

      if not success then
            print(errorMessage)
      end
end

while true do

for _, player in pairs(game.Players:GetPlayers()) do
       WinsLeaderboard:SetAsync(player.UserId, player.leaderstats.Power.Value)
end
 
for _, frame in pairs (game.Workspace.GlobalLeaderboard.LeaderboardGUI.Holder:GetChildren()) do

        frame:Destroy()
end

        updateLeaderboard()
        print("Updated!")

        wait(10)
end


1 comment

0

That is because you are using datastore is studio. Fix it by : Open the game in studio. Click Home, then Game settings. Click Options then turn on "Allow HTTP requests"