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

What is wrong with this buy Gui?

This is pretty simple stuff, but it still isn't working. When I click the button, it puts the error "Players.Player1.PlayerGui.ScreenGui.ShopBG.Sword1.BuyScript:7: attempt to index local 'Player' (a number value)", and then a few lines later "Disconnected event because of exception". Can someone tell me what's wrong?

price = 10
clone = game.Lighting.Sword1
Name = "Wood Sparring Sword"
Player = game.Players.LocalPlayer

function onClick(Player)
	if Player.leaderstats.Gold.Value >= price then
		Player.leaderstats.Gold.Value = Player.leaderstats.Gold.Value - price
		clone:clone()
		clone.Parent = Player.Backpack
		clone.Name = Name
	elseif Player.leaderstats.Gold.Value < price then
		print("Player does not have the required funds for "..Name)
	else
		
	end
end

script.Parent.MouseButton1Down:connect(onClick)

1 answer

✓ Accepted answer

well first off, for the function on line 6 you dont need Player as an argument, it might confuse things. secondly, one line 9 you have the sword clone, yet you dont have a variable set to it to do with as you want. Thirdly, on line 12, you do not need elseif to define parameters for something that would happen regardless, you have it >= price up top, so anything else would be <, so you dont have to have elseif.

if you were to rewrite the code to be more efficient, it would go along something like this:

price = 10
item = game.Lighting:WaitForChild("Sword1") -- make sure it loads
player = game.Players.LocalPlayer -- if its a local script

script.Parent.MouseButton1Down:connect(function()
local gold = player:WaitForChild("leaderstats"):WaitForChild("Gold")
if gold.Value >= price then
gold.Value = gold.Value - price
local copy = item:clone()
copy.Parent = player.Backpack
else
print(player.Name.." does not have enough gold for "..item.Name)
end
end)

this is a quick and easy remake, but I hope you can learn from the different mistakes you made and continue to grow in lua :) Just keep in mind, not all functions need arguments, and when you clone something, make sure you set a variable and its parent.

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