I have a GUI shop that has buttons. The button's are to buy weapons, when you own you buy the weapon and then click it again, it's supposed to displays a text label saying that it is "Equipped".

I made a script for the store buttons each so that it can show only one weapon already equipped, meaning once one button is clicked, the text label of the button you clicked says "equipped", and the other "equipped" text labels of different buttons becomes invisible.

The problem is that the equipped text labels aren't disappearing and sometimes after clicking the buttons. It is also working in studio, but not working in game.

What did I do wrong? Can you help me? Thank you!

This is the equipped text label's script:

local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local points = player:WaitForChild("leaderstats")["Player Points"]
local value = 2500 -- edit here
local name = "DarkHeartSword" -- here
local altname = "Darkheart"
local swords = script.Parent.Parent:GetChildren()
local Currently_Equipped = false
function TweenReceipt()
	local debounce = false
	
	if debounce == false then
		debounce = true
	script.Parent.Parent.Parent.MoneyNeeded.Visible = true
	script.Parent.Parent.Parent.MoneyNeeded.Amount.Text = value - points.Value
	script.Parent.Parent.Parent.MoneyNeeded:TweenPosition(UDim2.new(0, 300, 0, -100),"Out", "Quart", 1.5)
	wait(2.5)
	script.Parent.Parent.Parent.MoneyNeeded:TweenPosition(UDim2.new(0, 1300, 0, -100), "Out", "Quart", 0.2)
	script.Parent.Parent.Parent.MoneyNeeded.Position = UDim2.new(0, -1000, 0, -100)
	script.Parent.Parent.Parent.MoneyNeeded.Visible = false
	
	end
	debounce = false
end
script.Parent.MouseButton1Click:connect(function()
	if not player.Swords:FindFirstChild(altname) then -- edit here
		
		if points.Value >= value then -- buying clause
		points.Value = points.Value - value
		local Sword = Instance.new("BoolValue", player.Swords)
		Sword.Name = altname -- here
		script.Parent.Owned.Visible = true
		else
			TweenReceipt()
		end
	elseif Currently_Equipped == false then
		for i, v in pairs(swords) do
		
		v.Equipped.Visible = false
	
		
		script.Parent.Equipped.Visible = true
		--player.Swords.Darkheart.Value = true -- edit here
		--player.PersonalSword.Value = altname
		
		end
		Currently_Equipped = true
		
	elseif Currently_Equipped == true then 
	for i, v in pairs(swords) do
		
		v.Equipped.Visible = false
		script.Parent.Equipped.Visible = true
		
	end
	end
	Currently_Equipped = false
	
end)
if player:WaitForChild("Swords"):FindFirstChild(altname) then -- final edit
	script.Parent.Owned.Visible = true
end