Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I fix the error: "plrName is not a valid member of ServerStorage"?

Asked by 6 years ago

Here is the code:

game.Players.PlayerAdded:Connect(function(plr)

    local plrFolder = Instance.new("Folder", game.ServerStorage)
    plrFolder.Name = plr.Name

    local plrInfo = Instance.new("Folder", plrFolder)
    plrInfo.Name = "PlayerInfo"
end)



game.Players.PlayerRemoving:Connect(function(plr)

    local plrName = plr.Name
    local plrInfo = game.ServerStorage.plrName.PlayerInfo -- here is where the error occurs

end)

Could someone please help me figure out what is wrong? Thank you.

0
`ServerStorage[plrName].PlayerInfo`? TheeDeathCaster 2368 — 6y

2 answers

Log in to vote
0
Answered by 6 years ago

Rather use FindFirstChild or [plrName]

game.Players.PlayerAdded:Connect(function(plr)

    local plrFolder = Instance.new("Folder", game.ServerStorage)
    plrFolder.Name = plr.Name

    local plrInfo = Instance.new("Folder", plrFolder)
    plrInfo.Name = "PlayerInfo"
end)



game.Players.PlayerRemoving:Connect(function(plr)

    local plrName = plr.Name
    local plrInfo = game.ServerStorage:FindFirstChild(plrName):WaitForChild('PlayerInfo')

end)

Also, the second param of instance.new (parent) is deprecated

game.Players.PlayerAdded:Connect(function(plr)

    local plrFolder = Instance.new("Folder")
    plrFolder.Name = plr.Name
    plrFolder.Parent = game.ServerStorage

    local plrInfo = Instance.new("Folder")
    plrInfo.Name = "PlayerInfo"
    plrInfo.Parent = plrFolder
end)



game.Players.PlayerRemoving:Connect(function(plr)

    local plrName = plr.Name
    local plrInfo = game.ServerStorage:FindFirstChild(plrName):WaitForChild('PlayerInfo')

end)
0
Thank you User#21908 42 — 6y
0
Np :) User#20388 0 — 6y
Ad
Log in to vote
0
Answered by 6 years ago
Edited 6 years ago

Use [] brackets instead of the . dot operator:

game.Players.PlayerAdded:Connect(function(plr)

    local plrFolder = Instance.new("Folder", game.ServerStorage)
    plrFolder.Name = plr.Name

    local plrInfo = Instance.new("Folder", plrFolder)
    plrInfo.Name = "PlayerInfo"
end)



game.Players.PlayerRemoving:Connect(function(plr)

    local plrName = plr.Name
    local plrInfo = game.ServerStorage[plrName].PlayerInfo

end)

Answer this question