I've got a script to assign 3 hidden values to the player as they join, but it doesn't work. I get nothing in the output either, it just doesn't assign the values.
wait(2) -- wait for the character to load
pointsKey = "PlayerPoints"
coinsKey = "PlayerCoins"
newKey = "PlayerNew"
function assignValues(plr)
plr:WaitForDataReady();
points = Instance.new("NumberValue")
coins = Instance.new("NumberValue")
notnew = Instance.new("BoolValue")
--new
notnew.Parent = plr
notnew.Name = "NotNew"
notnew.Value = plr:LoadBoolean(newKey)
--points and coins
points.Parent = plr
points.Name = "Points"
coins.Parent = plr
coins.Name = "Coins"
if notnew.Value == false then --check if player is new
plr.NotNew.Value = true
plr.Points.Value = 0
plr.Coins.Value = 0
if plr.PlayerGui.ScreenGui.Tutorial.Visible == false then
plr.PlayerGui.ScreenGui.Tutorial.Visible = true
plr.PlayerGui.ScreenGui.Tutorial.Position = UDim2.new(0, -600, 0, 100)
plr.PlayerGui.ScreenGui.Tutorial:TweenPosition(UDim2.new(0,500,0,100), "Out", "Bounce", 1)
end
elseif notnew.Value == true then
plr.Points.Value = plr:LoadNumber(pointsKey)
plr.Coins.Value = plr:LoadNumber(coinsKey)
end
points.Changed:connect(function() saveStats(plr) end)
coins.Changed:connect(function() saveStats(plr) end)
notnew.Changed:connect(function() saveStats(plr) end)
end
function saveStats(plr)
--coins and points save
plr:SaveNumber(coinsKey, plr.Coins.Value)
plr:SaveNumber(pointsKey, plr.Points.Value)
--new save
plr:SaveBoolean(newKey, plr.NotNew.Value)
end
game.Players.PlayerAdded:connect(assignValues)

3 comments
Just so you know, this script attempts to utilize Data Persistence, not DataStores. They are two separate things.
You should not be using
wait(2)at the top since you are attempting to hook intoPlayerAdded.BlueTaslem is right, never use wait() when PlayerAdded is involved.