I'm making this hangout game and I'm currently working on a leaderboard for how much time people have that shows the top 3.
Heres a Image of what the leaderboard looks like, Gyazo Image
It doesn't even save the players data to the data store because of a http error.
Code:
local Model = workspace:WaitForChild("TOP_TIMES") local First = Model:WaitForChild("First") local Second = Model:WaitForChild("Second") local Third = Model:WaitForChild("Third") local First_Obj = {First:WaitForChild("PName"), First:WaitForChild("PTime")} local Second_Obj = {Second:WaitForChild("PName"), Second:WaitForChild("PTime")} local Third_Obj = {Third:WaitForChild("PName"), Third:WaitForChild("PTime")} local Characters = Model:WaitForChild("Characters") local First_Position = Characters:WaitForChild("First").PrimaryPart.Position local Second_Position = Characters:WaitForChild("Second").PrimaryPart.Position local Third_Position = Characters:WaitForChild("Third").PrimaryPart.Position Characters:ClearAllChildren() local Ordered_Data_Store = game:GetService("DataStoreService"):GetOrderedDataStore("ORDERED_TIME_DATA") local Data_Key = "~~~" local Players = game:GetService("Players") function GET_TOP_THREE() print("GETTING TOP THREE") local Ascending = false local PageSize = 3 local Pages = Ordered_Data_Store:GetSortedAsync(Ascending, PageSize) local Top_Three = Pages:GetCurrentPage() print("TOP THREE: ") for i,v in pairs(Top_Three) do print("I: "..i) print("V: "..v) end return Top_Three end function LOAD_TOP_THREE() print("LOADING TOP THREE") local TOP_THREE = GET_TOP_THREE() if #Characters:GetChildren() > 0 then Characters:ClearAllChildren() end for rank, data in pairs(TOP_THREE) do print("RANK: "..rank) print("DATA: "..data) local User_ID = data[1] local Player_Time = data[2] if rank == 1 then print("IS RANK 1") First_Obj[1].UI.TextLabel.Text = Players:GetNameFromUserIdAsync(User_ID) First_Obj[2].UI.TextLabel.Text = Player_Time -- LOAD CHARACTER IN local Humanoid_Desc = Players:GetHumanoidDescriptionFromUserId(User_ID) local Character_Model = Players:CreateHumanoidModelFromDescription(Humanoid_Desc, Enum.HumanoidRigType.R15) Character_Model:WaitForChild("Humanoid").DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None Character_Model:WaitForChild("Humanoid").MaxHealth = math.huge() for _,v in pairs(Character_Model:GetChildren()) do if v:IsA("BasePart") then v.Anchored = true end end Character_Model.Parent = Characters Character_Model:SetPrimaryPartCFrame(First_Position) elseif rank == 2 then print("IS RANK 2") Second_Obj[1].UI.TextLabel.Text = Players:GetNameFromUserIdAsync(User_ID) Second_Obj[2].UI.TextLabel.Text = Player_Time -- LOAD CHARACTER IN local Humanoid_Desc = Players:GetHumanoidDescriptionFromUserId(User_ID) local Character_Model = Players:CreateHumanoidModelFromDescription(Humanoid_Desc, Enum.HumanoidRigType.R15) Character_Model:WaitForChild("Humanoid").DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None Character_Model:WaitForChild("Humanoid").MaxHealth = math.huge() for _,v in pairs(Character_Model:GetChildren()) do if v:IsA("BasePart") then v.Anchored = true end end Character_Model.Parent = Characters Character_Model:SetPrimaryPartCFrame(Second_Position) elseif rank == 3 then print("IS RANK 3") Third_Obj[1].UI.TextLabel.Text = Players:GetNameFromUserIdAsync(User_ID) Third_Obj[2].UI.TextLabel.Text = Player_Time -- LOAD CHARACTER IN local Humanoid_Desc = Players:GetHumanoidDescriptionFromUserId(User_ID) local Character_Model = Players:CreateHumanoidModelFromDescription(Humanoid_Desc, Enum.HumanoidRigType.R15) Character_Model:WaitForChild("Humanoid").DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None Character_Model:WaitForChild("Humanoid").MaxHealth = math.huge() for _,v in pairs(Character_Model:GetChildren()) do if v:IsA("BasePart") then v.Anchored = true end end Character_Model.Parent = Characters Character_Model:SetPrimaryPartCFrame(Third_Position) end end end Players.PlayerRemoving:Connect(function(Player) local leaderstats = Player:FindFirstChild("leaderstats") local Player_Time = leaderstats:FindFirstChild("Time") print("PLAYER TIME: "..Player_Time.Value) Ordered_Data_Store:SetAsync(Player.UserId, Player_Time.Value) end) Players.PlayerAdded:Connect(function(Player) local leaderstats = Player:WaitForChild("leaderstats") local Player_Time = leaderstats:WaitForChild("Time") print("PLAYER TIME: "..Player_Time.Value) Ordered_Data_Store:SetAsync(Player.UserId, Player_Time.Value) end) LOAD_TOP_THREE() while wait(60) do LOAD_TOP_THREE() end
Error:
502: API Services rejected request with error. HTTP 400 (Bad Request)
The error is from when it does SetAsync to save the data
And I don't know what the problem is with that.
Any help is appreciated :)