Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Money is not a valid member of folder how to fix??

local DataStore = game:GetService("DataStoreService") local ds = DataStore:GetDataStore ("CashSaveSystem")

game.Players.PlayerAdded:connect(function(player) local leader = Instance.new("Folder", player) leader.Name = "leaderstats" local Cash = Instance.new("IntValue", leader) Cash. Name = "Cash" Cash.Value = ds:GetAsync(player.UserId) or 0 Cash.Changed:Connect(function() ds:SetAsync(player.UserId, Cash.Value)

end) 

end)

game.Players.PlayerRemoving:Connect(function(player) ds:SetAsync(player.UserId, player.leaderstats.Money.Value) end)

1 comment

0

You didn't put the code in a code block properly. Can you please fix that to make it easier to read?

1 answer

###The problem is because you added a space between Cash. Name = "Cash". Remove that space. However, you still have a problem! Your SetAsync bit is saving player.leaderstats.Money.Value! You named it Cash! Change it to Cash and it should work.

###Final product:

local DataStore = game:GetService("DataStoreService") 
local ds = DataStore:GetDataStore("CashSaveSystem")

game.Players.PlayerAdded:Connect(function(player) 
    local leader = Instance.new("Folder") -- parent argument is deprecated
    leader.Name = "leaderstats" 
    local Cash = Instance.new("IntValue") 
    Cash.Name = "Cash" 
    Cash.Value = ds:GetAsync(player.UserId) or 0
    leader.Parent = player -- assign parent LAST not first
    Cash.Parent = leader

end)

game.Players.PlayerRemoving:Connect(function(player) 
    ds:SetAsync(player.UserId, player.leaderstats.Cash.Value) 
end)

###On a side note, remember to paste your code in a code block, like this! It helps us be able to read the code.

2 comments

0

what do you mean by "CHANGE IT TO CASH"??

0

I meant change the name to Cash.

This discussion is preserved as it was. New answers, comments, and votes are closed.