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

Someone Only Worsened my Problem in moving variables Help please?

So earlier I asked this question:

Ok so, I have this script that makes a leader board:

game.Players.PlayerAdded:connect(function(plr)
    local stats = Instance.new("IntValue", plr)
    stats.Name = "leaderstats"
    local points = Instance.new("IntValue",stats)
    points.Name = "Copper"
    points.Value = 0
end)

I then want to make a button that when you click it you get 1 copper: here it is:

function onClicked(playerWhoClicked)
    script.Parent.BrickColor = BrickColor.DarkGray()
    wait(6)
    points.Value = +1
    script.Parent.BrickColor = BrickColor.new("Reddish brown")
end
 
script.Parent.ClickDetector.MouseClick:connect(onClicked)

Upon starting it gave me the error of: ServerScriptService.Script:2: attempt to index global 'points' (a nil value) I think this is because the variable from my fist scrip is a local and not a global therefore I cannot transfer it, all this caused the block to be un-clickable upon removing the local from that scrip it has no visible change, the button was still un-clickable Please help!

P.s if you find any other errors in my coding please notify me!

A person then responded with this: You get the playerWhoClicked, now find the value inside them and change it.

function onClicked(playerWhoClicked)
	script.Parent.BrickColor = BrickColor.DarkGray()
	wait(5)
	local points = playerWhoClicked.leaderstats.points
	points.Value = points.Value+1
	script.Parent.BrickColor = BrickColor.new("Reddish brown")
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)

this only worsened my problem, now whenever I try to get my ore it gives me the error: "points is not a valid member of IntValue" every 5 seconds, I am simply asking someone to try and solve it because noone usually looks on already respended to pages.

2 answers

✓ Accepted answer

At the end of line 4, change "points" to "Copper" and it should work now, since I don't see any other errors.

1 comment

0

The thing is that the NAME is "Copper". SO when searching for it, it's Copper, not "points" as points was just a local variable in your leader board script

Its quite easy

because points is not a member of IntValue.

Copper is.


function onClicked(playerWhoClicked)

    script.Parent.BrickColor = BrickColor.DarkGray()

    wait(5)

    local Copper = playerWhoClicked.leaderstats.Copper

    Copper.Value = Copper.Value+1

    script.Parent.BrickColor = BrickColor.new("Reddish brown")

end

 

script.Parent.ClickDetector.MouseClick:connect(onClicked)

1 comment

0

Yes, yes. How stupid of me.

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