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

Clone has a nil value??!?!?? please help.

Asked by
VVired 28
7 years ago

I am trying to make a hat selection gui but it doesn't work! heres the script.

local array = {"hat1","hat2","hat3","hat4"}
local currentPosition = 1
local char = game.Players.LocalPlayer.CharacterAdded:wait()
local hat1 = game.ReplicatedStorage:FindFirstChild("BlackFauxhawk")
local hat2 = game.ReplicatedStorage:FindFirstChild("Fauxhawk")
local hat3 = game.ReplicatedStorage:FindFirstChild("LongHairHeadBandBrown")
local hat4 = game.ReplicatedStorage:FindFirstChild("MensBorderBeanie")

script.Parent.Right.MouseButton1Click:connect(function()
    currentPosition = currentPosition < #array and currentPosition + 1 or currentPosition
    local cool = (array[currentPosition]):Clone()
    cool.Parent = char
end)

script.Parent.Left.MouseButton1Click:connect(function()
    currentPosition = currentPosition > 1 and currentPosition - 1 or currentPosition
    local cool = (array[currentPosition]):Clone()
    cool.Parent = char
end)

1 answer

Log in to vote
0
Answered by 7 years ago

What you seem to be doing wrong is this: 1) Your defining your values in your arrays as strings, however you can only Clone an object.

I see what your trying to do though, you define your hats afterwards. So secondly, you need to change that around

local hat1 = game.ReplicatedStorage:FindFirstChild("BlackFauxhawk")
local hat2 = game.ReplicatedStorage:FindFirstChild("Fauxhawk")
local hat3 = game.ReplicatedStorage:FindFirstChild("LongHairHeadBandBrown")
local hat4 = game.ReplicatedStorage:FindFirstChild("MensBorderBeanie")

local array = {...}

Then, in your array, remove the "s.

local array = {hat1,hat2,hat3,hat4}

So your script should finish of as this:

local currentPosition = 1
local char = game.Players.LocalPlayer.CharacterAdded:wait()
local hat1 = game.ReplicatedStorage:FindFirstChild("BlackFauxhawk")
local hat2 = game.ReplicatedStorage:FindFirstChild("Fauxhawk")
local hat3 = game.ReplicatedStorage:FindFirstChild("LongHairHeadBandBrown")
local hat4 = game.ReplicatedStorage:FindFirstChild("MensBorderBeanie")
local array = {hat1,hat2,hat3,hat4}

script.Parent.Right.MouseButton1Click:connect(function()
    currentPosition = currentPosition < #array and currentPosition + 1 or currentPosition
    local cool = (array[currentPosition]):Clone()
    cool.Parent = char
end)

script.Parent.Left.MouseButton1Click:connect(function()
    currentPosition = currentPosition > 1 and currentPosition - 1 or currentPosition
    local cool = (array[currentPosition]):Clone()
    cool.Parent = char
end)

And hopefully that works!

Ad

Answer this question