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

1

Studio doesn't support API services like a datastore unless "Api services in studio" or whatever is enabled in game settings

0

So by game settings, do you mean in Studio or in "Configure Game" in the Create tab?

0

It is enabled? Would you know what else might cause this problem?

0

Is it in a localscript or a serverscript?

0

Serverscript