This is a surface gui that shows the players the top 10 kills, any way i can datastore this so every server is competing?
function Create() return script.Parent.PlayerFrame:Clone() end function GetTopPlayers() local TopPlayers={} local Numbers={} local PossiblePlayers={} local function GetPlayerWins(Player) if Player and Player:FindFirstChild("leaderstats") and Player.leaderstats:FindFirstChild("KOs") then return Player.leaderstats["KOs"].Value end return 0 end for i,v in pairs(Game.Players:GetPlayers()) do table.insert(Numbers,GetPlayerWins(v)) table.insert(PossiblePlayers,v) end local function GetBiggest() local Biggest=math.max(unpack(Numbers)) local Player for index,value in pairs(PossiblePlayers) do if Biggest==GetPlayerWins(value) then Player=value table.remove(PossiblePlayers,index) break end end for i,v in pairs(Numbers) do if v==Biggest then print("Removed: "..v.." "..Numbers[i]) table.remove(Numbers,i) break end end return Player end for i = 1,#Game.Players:GetPlayers() do local Biggest=GetBiggest() table.insert(TopPlayers,i,Biggest) end return TopPlayers end function Update() local TopPlayers=GetTopPlayers() local function Clear() for i,v in pairs(script.Parent:GetChildren()) do if v.Name=="Player" then v:Destroy() end end end Clear() if #TopPlayers>0 then for i,v in pairs(TopPlayers) do if i>10 then break end pcall(function() local Frame=Create() Frame.BackgroundColor3=Color3.new(1,1,1) Frame.Name="Player" Frame.Parent=script.Parent Frame.Position=UDim2.new(0.05,0,i*.08,0) Frame.PlayerName.Text=v.Name Frame.Place.Text="#"..i Frame.Wins.Text=tostring(v.leaderstats["KOs"].Value) end) end end end Game.Players.PlayerAdded:connect(function(Player) Update() Player:WaitForChild("leaderstats"):WaitForChild("KOs").Changed:connect(function() Update() end) Update() end) Game.Players.PlayerRemoving:connect(function(Player) Update() end)