[UNSOLVED] Why Does My DataStore Not Work With My Global LeaderBoard?
Asked by
2 years ago Edited 2 years ago
I Have A Global Leaderboard And Leaderstats They Work Just Fine But When I Added A DataStore To Save The Data It Shows The Leaderstat as 0 And Doesn't Show Anything Here Are My Scripts:
This Is The Leaderstats And DataStore Script
01 | local dataStoreService = game:GetService( 'DataStoreService' ) |
02 | local myDataStore = dataStoreService:GetOrderedDataStore( 'WinsLeaderBoard' ) |
04 | game.Players.PlayerAdded:Connect( function (player) |
05 | local leaderstats = Instance.new( 'Folder' ) |
06 | leaderstats.Name = 'leaderstats' |
07 | leaderstats.Parent = player |
09 | local Wins = Instance.new( 'IntValue' ) |
11 | Wins.Parent = leaderstats |
14 | local Coins = Instance.new( 'IntValue' ) |
16 | Coins.Parent = leaderstats |
20 | local success, errormessage = pcall ( function () |
21 | data = myDataStore:GetAsync(player.UserId.. '-Wins' ) |
27 | print ( 'There Was An Error Saving Data!' ) |
32 | game.Players.PlayerRemoving:Connect( function (player) |
33 | local success, errormessage = pcall ( function () |
34 | myDataStore:SetAsync(player.UserId.. '-Wins' ,player.leaderstats.Wins.Value) |
37 | print ( 'Saved Data Successfuly Saved!' ) |
39 | print ( 'There Was An Error While Saving Data!' ) |
This Is The Script For The LeaderBoard
01 | local DataStoreService = game:GetService( 'DataStoreService' ) |
02 | local WinsDataStore = DataStoreService:GetOrderedDataStore( 'WinsLeaderBoard' ) |
04 | local LeaderBoardPart = script.Parent.Parent.Parent |
07 | local function RefreshLeaderboard() |
09 | for i,Player in pairs (game.Players:GetPlayers()) do |
10 | WinsDataStore:SetAsync(Player.UserId, Player.leaderstats.Wins.Value) |
13 | local Success, Error = pcall ( function () |
15 | local Data = WinsDataStore:GetSortedAsync( false , 10 ) |
16 | local WinsPage = Data:GetCurrentPage() |
18 | for Rank, SavedData in ipairs (WinsPage) do |
20 | local Username = game.Players:GetNameFromUserIdAsync( tonumber (SavedData.key)) |
21 | local Wins = SavedData.value |
24 | local NewSample = script.Parent.GLTemplate:Clone() |
25 | NewSample.Visible = true |
26 | NewSample.Parent = LeaderBoardPart.SurfaceGui.Holder |
27 | NewSample.Name = Username |
28 | NewSample.Rank.Text = '#' ..Rank |
29 | NewSample.PlayerName.Text = Username |
30 | NewSample.Value.Text = Wins |
38 | for i,Frame in pairs (LeaderBoardPart.SurfaceGui.Holder:GetChildren()) do |
39 | if Frame.Name ~ = 'GLTemplate' and Frame:IsA( 'Frame' ) then |
45 | task.wait(RefreshRate) |
Thanks.