So, for my game, I want my leaderstats to save. I've tried datastores and whatnot, but nothing ever works. I then resorted to using a plain leaderstats save. I reused my old leaderstat save from another one of my old games, and it worked in that game, but it doesn't work for this new game... It's a normal script in serverscriptservice. I had to repost this since I wasn't getting any more responses. Code:
CashStore = game:GetService("DataStoreService"):GetDataStore("DataStore")
function PlayerEntered(player)
repeat wait() until player.Character
local stats = Instance.new("IntValue")
stats.Parent = player
stats.Name = "leaderstats"
local cash = Instance.new("IntValue")
cash.Parent = stats
cash.Name = "Doubloons"
if CashStore:GetAsync("Points_"..player.Name) ~= nil then
cash.Value = CashStore:GetAsync("Points_"..player.Name)
else
cash.Value = 100
end
cash.Changed:connect(function(Val)
CashStore:SetAsync("Points_"..player.Name, Val)
end)
end
game.Players.PlayerAdded:connect(PlayerEntered)
Thank you!

8 comments
You're referencing a completely different DataStore. Use CashStore:SetAsync().
@Feahren, Hello, thanks for responding. Unfortunately, I don't know what you mean.
on line on , put local behind CashStore to define it as a variable
Accidentally held down Enter ! Woops !
Use Userids instead of names. You can change usernames, but not userids.
What's the error? if any
Also sometimes in studio, if you do a solo play test, the player can load in before the PlayerAdded connection is made. It's good to include for _,player in pairs(game.Players:GetPlayers()) do PlayerEntered(player) end
@Tizzel, Thanks for responding! I did that, but it doesn't work... @Puppy, thanks for responding! Oh okay, thank you! @HxterNinja, Thanks for responding! No, there's no error. I tested it in the actual game, but it still doesn't work...