So this is a script for DataStore and leaderstats. I do have studio access to API services on.
local serverStorage = game:GetService("ServerStorage") local dataStore = game:GetService("DataStoreService"):GetDataStore("PlayerSave") game.Players.PlayerAdded:Connect(function(player) local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" leaderstats.Parent = player local strength = Instance.new("NumberValue") strength.Name = "Strength" strength.Parent = leaderstats local rebirths = Instance.new("IntValue") rebirths.Name = "Rebirths" rebirths.Parent = leaderstats local dataFolder = Instance.new("Folder") dataFolder.Name = player.Name dataFolder.Parent = serverStorage.RemoteData local debounce = Instance.new("BoolValue") debounce.Name = "Debounce" debounce.Parent = dataFolder local strengthData, rebirthsData local success, errormessage = pcall(function() strengthData = dataStore:GetAsync("strength-"..player.UserId) rebirthsData = dataStore:GetAsync("rebirths-"..player.UserId) end) if success then if strengthData then strength.Value = strengthData rebirths.Value = rebirthsData end end end) game.Players.PlayerRemoving:Connect(function(player) local success, errormessage = pcall(function() dataStore:SetAsync("strength-"..player.UserId.player.leaderstats.Strength.Value) dataStore:SetAsync("rebirths-"..player.UserId.player.leaderstats.Rebirths.Value) end) end)
My game will NOT save data for some reason... If you can help me, please reply or put an answer.
The reason why it is not saving is that you conjoined player.UserId
with the "Strength" and "Rebirths" values on lines 42 and 43. All you have to do is add a comma instead of a period in between both parameters. I have the solution below if you want to see the correct outcome.
game.Players.PlayerRemoving:Connect(function(player) local success, errormessage = pcall(function() dataStore:SetAsync("strength-"..player.UserId, player.leaderstats.Strength.Value) dataStore:SetAsync("rebirths-"..player.UserId, player.leaderstats.Rebirths.Value) end) end)
Do something like this inside the player removing part:
game.Players.PlayerRemoving:Connect(function(player) local success, errormessage = pcall(function() dataStore:SetAsync(player.UserId.."-strength", player.leaderstats.Strength.Value) dataStore:SetAsync(player.UserId.."-rebirths", player.leaderstats.Rebirths.Value) end) end)