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

Script saying there is a 'nil' value in this script, can someone help?

Asked by
RGRage 45
8 years ago

I am trying to create a script that makes a data storage for a player when he/she joins the game and update their health every second inside another IntValue, but the script is saying that there is a 'nil' value in the script.


local plr = game.Players.LocalPlayer plr.CharacterAdded:connect(function(char) local Humanoid = char:WaitForChild('Humanoid') local plrName = plr.Name local PlayerData = game.ServerStorage.PlayerNameStorage:WaitForChild(plrName.."Data") local PlayerNameValue = PlayerData:WaitForChild(plrName.."NameValue") local HealthIntValue = PlayerData:WaitForChild(plrName.."HealthValue") local MaxHealthIntValue =PlayerData:WaitForChild(plrName.."MaxHealthValue") while true do if plr ~= nil then if char ~= nil then if Humanoid ~= nil then if Humanoid.Health > 0 then HealthIntValue.Value = Humanoid.Health wait(1) elseif Humanoid.Health <= 0 then HealthIntValue.Value = 0 wait(1) end elseif Humanoid == nil then print("'Humanoid' not found; all relating objects removed.") end elseif char == nil then print("'char' not found; all relating objects removed.") end elseif plr == nil then print("'plr' not found; all relating objects removed.") end end end)

Here is the whole code:

game.Players.PlayerAdded:connect(function(plr)
    local plrName = plr.Name
    if game.ServerStorage.PlayerNameStorage ~= nil then
        local PlayerData = Instance.new('Folder')
        PlayerData.Parent = game.ServerStorage.PlayerNameStorage
        PlayerData.Name = plrName.."Data"
        local PlayerNameValue = Instance.new('StringValue')
        PlayerNameValue.Parent = PlayerData
        PlayerNameValue.Name = plrName.."NameValue"
        PlayerNameValue.Value = plrName
        local HealthIntValue = Instance.new('IntValue')
        HealthIntValue.Parent = PlayerData
        HealthIntValue.Name = plrName.."HealthValue"
        local MaxHealthIntValue = Instance.new('IntValue')      
        MaxHealthIntValue.Name = plrName.."MaxHealthValue"
        MaxHealthIntValue.Parent = PlayerData
        plr.CharacterAdded:connect(function(char)
            local Humanoid = char:WaitForChild('Humanoid')
            if Humanoid.Health > 0 then
                HealthIntValue.Value = Humanoid.Health
                MaxHealthIntValue.Value = Humanoid.MaxHealth
            end
        end)
    end
end)

game.Players.PlayerRemoving:connect(function(plr)
    local plrName = plr.Name
    if game.ServerStorage.PlayerNameStorage:FindFirstChild(plrName.."Data") ~= nil then
        local PlayerData = game.ServerStorage.PlayerNameStorage:FindFirstChild(plrName.."Data")
        PlayerData:Destroy()
    end
end)


local plr = game.Players.LocalPlayer


plr.CharacterAdded:connect(function(char)
    local Humanoid = char:WaitForChild('Humanoid')
    local plrName = plr.Name
    local PlayerData = game.ServerStorage.PlayerNameStorage:WaitForChild(plrName.."Data")
    local PlayerNameValue = PlayerData:WaitForChild(plrName.."NameValue")
    local HealthIntValue = PlayerData:WaitForChild(plrName.."HealthValue")
    local MaxHealthIntValue =PlayerData:WaitForChild(plrName.."MaxHealthValue")
    while true do
        if plr ~= nil then
            if char ~= nil then
                if Humanoid ~= nil then
                    if Humanoid.Health > 0 then
                        HealthIntValue.Value = Humanoid.Health
                        wait(1)
                    elseif Humanoid.Health <= 0 then
                        HealthIntValue.Value = 0
                        wait(1)
                    end
                elseif Humanoid == nil then
                    print("'Humanoid' not found; all relating objects removed.")
                end
            elseif char == nil then
                print("'char' not found; all relating objects removed.")
            end
        elseif plr == nil then
            print("'plr' not found; all relating objects removed.")             
        end
    end 
end)

2
You're trying to access ServerStorage on the client. You can't do that. 1waffle1 2908 — 8y

Answer this question