well this script is supposed to show all your armors everytime one is put into your armor inventory but instead of showing the right amount it doubles or triples it and I've tried everything but it keeps duplicating the same value when showing the buttons and idk how to reverse it here's the script:
local player = game.Players.LocalPlayer local character = player.Character local buttons = {} function refreshhelm() for i,v in pairs(player.ArmorInventory:GetChildren()) do if v:WaitForChild("IsHelm").Value == true then local button = script.ImageButton:Clone() button.Name = v.Name button.LayoutOrder = i button.Parent = script.Parent.Choose button.Image = v.HelmImage.Value table.insert(buttons,button) button.MouseButton1Click:Connect(function() if script.Parent.Choose.Selected.Value == nil or script.Parent.Choose.Selected.Value ~= v then script.Parent.Info.ArmorName.Text = v.HelmName.Value if v.Rarity.Value == 1 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(109, 109, 109) end if v.Rarity.Value == 2 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 170, 0) end if v.Rarity.Value == 3 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 85, 255) end if v.Rarity.Value == 4 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(85, 0, 255) end if v.Rarity.Value == 5 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(255, 128, 0) end script.Parent.Info.ArmorImage.Image = v.HelmImage.Value script.Parent.Info.Class.Text = "Class: "..v.Class.Value script.Parent.Info.PhysicalPower.Text = "Physical Power: "..v.PhysicalPower.Value script.Parent.Info.SpellPower.Text = "Spell Power: "..v.SpellPower.Value script.Parent.Info.Upgrades.Text = "Upgrades: "..v.CurrentUpgrades.Value.." / "..v.MaxUpgrades.Value script.Parent.Info.Health.Text = "HP: "..v.Health.Value script.Parent.Choose.Selected.Value = v if script.Parent.Choose.Selected.Value.HelmName.Value ~= script.Parent.Choose.HelmName.Value and script.Parent.Choose.Selected.Value.Health.Value ~= script.Parent.Choose.HelmHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value ~= script.Parent.Choose.HelmPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower ~= script.Parent.Choose.HelmSpell.Value then script.Parent.Info.Equip.Text = "Equip" script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(85, 255, 127) elseif script.Parent.Choose.Selected.Value.HelmName.Value == script.Parent.Choose.HelmName.Value and script.Parent.Choose.Selected.Value.Health.Value == script.Parent.Choose.HelmHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value == script.Parent.Choose.HelmPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower == script.Parent.Choose.HelmSpell.Value then script.Parent.Info.Equip.Text = "Unequip" script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(170,0,0) end end end) end end end function refreshchest() for i,v in pairs(player.ArmorInventory:GetChildren()) do if v:WaitForChild("IsChest").Value == true then local button = script.ImageButton:Clone() button.Name = v.Name button.LayoutOrder = i button.Parent = script.Parent.Choose button.Image = v.ChestImage.Value table.insert(buttons,button) button.MouseButton1Click:Connect(function() if script.Parent.Choose.Selected.Value == nil or script.Parent.Choose.Selected.Value ~= v then script.Parent.Info.ArmorName.Text = v.ChestName.Value if v.Rarity.Value == 1 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(109, 109, 109) end if v.Rarity.Value == 2 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 170, 0) end if v.Rarity.Value == 3 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 85, 255) end if v.Rarity.Value == 4 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(85, 0, 255) end if v.Rarity.Value == 5 then script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(255, 128, 0) end script.Parent.Info.ArmorImage.Image = v.ChestImage.Value script.Parent.Info.Class.Text = "Class: "..v.Class.Value script.Parent.Info.PhysicalPower.Text = "Physical Power: "..v.PhysicalPower.Value script.Parent.Info.SpellPower.Text = "Spell Power: "..v.SpellPower.Value script.Parent.Info.Upgrades.Text = "Upgrades: "..v.CurrentUpgrades.Value.." / "..v.MaxUpgrades.Value script.Parent.Info.Health.Text = "HP: "..v.Health.Value script.Parent.Choose.Selected.Value = v if script.Parent.Choose.Selected.Value.ChestName.Value ~= script.Parent.Choose.ChestName.Value and script.Parent.Choose.Selected.Value.Health.Value ~= script.Parent.Choose.ChestHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value ~= script.Parent.Choose.ChestPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower ~= script.Parent.Choose.ChestSpell.Value then script.Parent.Info.Equip.Text = "Equip" script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(85, 255, 127) elseif script.Parent.Choose.Selected.Value.ChestName.Value == script.Parent.Choose.ChestName.Value and script.Parent.Choose.Selected.Value.Health.Value == script.Parent.Choose.ChestHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value == script.Parent.Choose.ChestPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower == script.Parent.Choose.ChestSpell.Value then script.Parent.Info.Equip.Text = "Unequip" script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(170,0,0) end end end) end end end function backpackRefresh() for i,v in pairs(buttons) do v:Destroy() end refreshhelm() refreshchest() end backpackRefresh() player.ArmorInventory.ChildAdded:Connect(backpackRefresh) player.ArmorInventory.ChildRemoved:Connect(backpackRefresh)
any help would be helpful thx