Try running a live test server on studio and see what the issue is.
I never heard of that, and what is it
Basically running a 2 player server on studio. Go into Test and you’ll see it there probably.
More specifically, look in the output in the Local Server and see what is there. On both the players, and the Server
“output in the Local Server” Do you mean the Output box in Studio?
Yes, in a Local Server multiple studio windows should open, check the output in all of them.
This is in the Server Window:
And Client Window:
Try this version of your script that I modified:
print("Check 1")
local Players = game:GetService("Players")
local DataStore = game:GetService("DataStoreService")
local CashDS = DataStore:GetDataStore("CashDataStorage")
local Autosave = 10
Players.PlayerAdded:Connect(function(player)
print("Check 2")
local savedTable
local s,m = pcall(function()
savedTable = CashDS:GetAsync(player.userId)
end)
if typeof(savedTable) ~= "table" then
savedTable = {0,0,0}
end
local leaderstats = Instance.new("Folder")
leaderstats.Name = "SavesFolder"
leaderstats.Parent = player
local Cash2 = Instance.new("StringValue")
Cash2.Name = "AccDisabled"
cash2.Parent = leaderstats
local Cash = Instance.new("StringValue")
Cash.Name = "Save1"
cash.Parent = leaderstats
local Cash3 = Instance.new("StringValue")
Cash3.Name = "PlayerPasswort"
cash3.Parent = leaderstats
Cash2.Value = tonumber(savedTable[1]) or 0
Cash.Value = tonumber(savedTable[2]) or 0
Cash3.Value = tonumber(savedTable[3]) or 0
print("Check 3")
while true do
wait(Autosave)
if not Players:FindFirstChild(tostring(player)) then break end
print("Saving data for: ", player)
local saved = false
local s,m = pcall(function()
CashDS:SetAsync(player.UserId, {Cash2.Value, Cash.Value, Cash3.Value})
saved = true
end)
print("Players data was saved: ", saved)
end
end)
and see if all 3 prints will print.
It looks like your GetAsync() call returns nil. What’s on line 33?
So, since newcash is nil since the player has no data, it is telling you that you are trying to index a nil value. So, you need to put an if statement there and check if newcash exists. If it does, then you index it and set the Cash2, Cash, and Cash3 values, otherwise you would set those values to 0.
Are you guys going to ignore the script I posted above which fixes the error you guys are currently talking about? lol
im testing it right now. ---------
Umm… I’d rather run someone through debugging their problems themselves so that they can do it better next time, rather than provide them with the script that fixes all their problems magically.
Yes that is a good thing to do but my point was first seeing if it would print all 3 prints before the autosave loop. Then I was going to explain what it was that I did to fix it.
You don’t need to use a bunch of if statements to check if something exists, if its a number. You can use tonumber() and it will catch it for you and then you can use “or 0” to assign it so its not trying to put false/nil into the stringvalue.
It prints all Checks in Studio and works in Studio but still doesnt save in Game