so in the saveData function i get the an error
I followed a yt tutorial but i dont understand crap about datastores so i gonna need a lil help
---- CREATING THE CASH
local cash = Instance.new("IntValue")
local ps = game:GetService("Players")
local dss = game:GetService("DataStoreService")
local http = game:GetService("HttpService")
local plrdatastore = dss:GetDataStore("playerdata")
local playerdata
game.Players.PlayerAdded:Connect(function(player)
cash.Parent = player
cash.Name = "Cash"
cash.Value = 200
local Success, errormsg = pcall(function()
local pID = ps:GetUserIdFromNameAsync()
playerdata = plrdatastore:GetAsync(pID)
end)
if Success then
cash.Value = playerdata[1]
else
wait(errormsg)
end
print(playerdata)
end)
local function saveData(Player)
local PlayerData = {cash.Value}
local Success, errormsg = pcall(function()
plrdatastore:SetAsync(Player.UserId, playerdata)
end)
if not Success then
warn(errormsg) ----ERROR HERE
end
end
game:BindToClose(function()
for _, Player in pairs(game.Players:GetPlayers()) do
saveData(Player)
end
end)
game.Players.PlayerRemoving:Connect(function(Player)
saveData(Player)
end)
You have nothing in your :GetUserIdFromNameAsync, and it isn’t needed since you can just get .UserId
You’re referencing cash outside your function, but that would prevent any future players’ data saving
You didn’t capitalize playerdata
Code:
---- CREATING THE CASH
local ps = game:GetService("Players")
local dss = game:GetService("DataStoreService")
local http = game:GetService("HttpService")
local plrdatastore = dss:GetDataStore("playerdata")
local function saveData(Player)
local PlayerData = {Player.Cash.Value}
local Success, errormsg = pcall(function()
plrdatastore:SetAsync(Player.UserId, PlayerData)
end)
if not Success then
warn(errormsg) ----ERROR HERE
end
end
ps.PlayerAdded:Connect(function(player)
local playerdata = plrdatastore:GetAsync(player.UserId) or {
200
}
local cash = Instance.new("IntValue")
cash.Name = "Cash"
cash.Value = playerdata[1]
cash.Parent = player
end)
ps.PlayerRemoving:Connect(saveData)
game:BindToClose(function()
for _, Player in ps:GetPlayers() do
saveData(Player)
end
end)