Hello!
I've been working on a game for a couple of days now and the times I have tried it, the leaderboard has worked. Today I got on and added a couple of values, tried it, and nothing from the leaderboard had applied or saved. I deleted the values I added (expecting that to work) and I got the same results.
I have added a few extra print statements trying to diagnose the problem myself. If you could let me know where the problem may be and maybe a solution, let me know, please!
Thanks much!
- GingerChil
local DataStoreService = game:GetService("DataStoreService")
local myDataStore = DataStoreService:GetDataStore("myDataStore")
print("DataStoreService Got")
game.Players.PlayerAdded:Connect(function(player)
print("Playeradded Function Connected")
player.CharacterAdded:Connect(function(char)
print("Characteradded Function Connected")
game.Workspace:WaitForChild(player.Name)
game.Workspace[player.Name].Humanoid.NameDisplayDistance = 0
game.Workspace[player.Name].Humanoid.HealthDisplayDistance = 0
end)
print("Variables Started")
local leaderstats = Instance.new("Folder") -- "leaderstats" Folder
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local passengers = Instance.new("IntValue") -- Passengers
passengers.Name = "Passengers"
passengers.Parent = leaderstats
local cash = Instance.new("IntValue") -- Cash
cash.Name = "Cash"
cash.Parent = leaderstats
cash.Value = 0
local rebirths = Instance.new("IntValue") -- Rebirths
rebirths.Name = "Rebirths"
rebirths.Parent = leaderstats
local hidden = Instance.new("Folder") -- "hidden" Folder
hidden.Name = "hidden"
hidden.Parent = leaderstats
local passengerMultiplier = Instance.new("IntValue") -- Passenger Multiplier
passengerMultiplier.Name = "passengerMultiplier"
passengerMultiplier.Parent = hidden
passengerMultiplier.Value = 1
local maxPass = Instance.new("IntValue") -- Maximum Passengers
maxPass.Name = "MaxPass"
maxPass.Parent = hidden
maxPass.Value = 5
local speed = Instance.new("IntValue") -- Speed
speed.Name = "PlrSpeed"
speed.Parent = hidden
speed.Value = 16
local cashMultiplier = Instance.new("IntValue") -- Cash Multiplier
cashMultiplier.Name = "CashMult"
cashMultiplier.Parent = hidden
cashMultiplier.Value = 1
local owns = Instance.new("Folder") -- "owns" Folder
owns.Name = "owns"
owns.Parent = hidden
local dataCash
local dataRebirths
local dataPassengers
local dataPassMult
local dataMaxPass
local dataSpeed
local dataCashMult
print("Variables Ended")
local success, errormessage = pcall(function()
print("Success Function Made")
dataCash = myDataStore:GetAsync(player.UserId.."-cash")
dataRebirths = myDataStore:GetAsync(player.UserId.."-rebirths")
dataPassengers = myDataStore:GetAsync(player.UserId.."-passengers")
dataPassMult = myDataStore:GetAsync(player.UserId.."-PassMult")
dataMaxPass = myDataStore:GetAsync(player.UserId.."-MaxPass")
dataSpeed = myDataStore:GetAsync(player.UserId.."-Speed")
dataCashMult = myDataStore:GetAsync(player.UserId.."-CashMult")
end)
if success then
print("Success 'if' Statement Started")
cash.Value = dataCash
rebirths.Value = dataRebirths
passengers.Value = dataPassengers
passengerMultiplier.Value = dataPassMult
maxPass.Value = dataMaxPass
speed.Value = dataSpeed
cashMultiplier.Value = dataCashMult
else
print("Success 'else' statement started")
print("Data recieving error!")
warn(errormessage)
end
end)
print("Entire Player Added Function Complete")
game.Players.PlayerRemoving:Connect(function(player)
print("Playerremoving Function Connected")
local success, errormessage = pcall(function()
print("Success Function Made")
myDataStore:SetAsync(player.UserId.."-cash", player.leaderstats.cash.Value)
myDataStore:SetAsync(player.UserId.."-rebirths", player.leaderstats.rebirths.Value)
myDataStore:SetAsync(player.UserId.."-passengers", player.leaderstats.passengers.Value)
myDataStore:SetAsync(player.UserId.."-PassMult", player.leaderstats.hidden.passengerMultiplier.Value)
myDataStore:SetAsync(player.UserId.."-MaxPass", player.leaderstats.hidden.maxPass.Value)
myDataStore:SetAsync(player.UserId.."-Speed", player.leaderstats.hidden.speed.Value)
myDataStore:SetAsync(player.UserId.."-CashMult", player.leaderstats.hidden.cashMultiplier.Value)
end)
if success then
print("Success Function Completed")
print("Player data successfully saved!")
else
print("Success Function Incomplete")
print("Error while saving data!")
warn(errormessage)
end
end)

6 comments
Studio doesn't support API services like a datastore unless "Api services in studio" or whatever is enabled in game settings
So by game settings, do you mean in Studio or in "Configure Game" in the Create tab?
https://i.imgur.com/KpzTeOv.png
It is enabled? Would you know what else might cause this problem?
Is it in a localscript or a serverscript?
Serverscript