i have a script that handles the tool being deleted after a leaderstat is 0, however it isn’t doing that, it is a local script in a tool
local value = game.Players.LocalPlayer.Resources.Wood.Value
local newvalue = game.Players.LocalPlayer.Resources.Wood
newvalue.Changed:Connect(function()
if newvalue.Value == 0 then
script.Parent:Destroy()
end
script.Parent.Name = ("Wood ["..player.Resources.Wood.Value.."]")
end)
it changes the tool name but it dosn’t delete it self, leaving me with a tool that is named wood [0]
Your code works fine and deletes the tool on my end. As a side note: when the changed event runs, if the value is zero, you’re changing the name of the tool after destroying it - which will error. You cannot change the properties of an object that is nil.
Is newvalue an IntValue instance? Because if it’s a StringValue instance then this won’t work as you’d essentially be comparing the following.
if "0" == 0 then --Never true.
--Do code.
end
If that is the case then I suggest you either switch the StringValue into an IntValue or you use the following code to convert the string value into a number value.
if tonumber(newvalue.Value) == 0 then
script.Parent:Destroy()
end