I got a problem where you start a tycoon but from the literal start, it shows the button that still shouldnt be there.. the buttons are stairstwo button and one is walls button. i will show my main script where it all starts

-- Variables

local tycoonModel = script.Parent.Parent
local Items = {}

local boughtItems = tycoonModel:FindFirstChild("BoughtItems")
local buttons = tycoonModel:FindFirstChild("Buttons")
local dropperParts = tycoonModel:FindFirstChild("DropperParts")
local mainItems = tycoonModel:FindFirstChild("MainItems")
local Scripts = tycoonModel:FindFirstChild("Scripts")
local Values = tycoonModel:FindFirstChild("Values")

-- Tycoon Clone

local tycoonClone = tycoonModel:Clone()
tycoonClone.Parent = game.ReplicatedStorage

-- Owner Functions

mainItems.OwnerDoor.MainDoor.Touched:Connect(function(hit)
	if hit.Parent:FindFirstChild("Humanoid") and Values.OwnerValue.Value == nil then
		local Player = game.Players:GetPlayerFromCharacter(hit.Parent)
		
		if Player:FindFirstChild("OwnsTycoon").Value == false then
			Values.OwnerValue.Value = Player
			Player:FindFirstChild("OwnsTycoon").Value = true
			
			while wait() do
				mainItems.OwnerDoor.MainDoor.SurfaceGui.TextLabel.Text = tostring(Values.OwnerValue.Value).." Tycoon"
			end
		end
	end
end)


-- Buying Functions

for i, v in pairs(buttons:GetChildren()) do
	local newItem = boughtItems:FindFirstChild(v.Item.Value)
	if newItem ~= nil then
		Items[newItem.Name] = newItem:Clone()
		newItem:Destroy()
	else
		v.ButtonPart.Transparency = 1
		v.ButtonPart.CanCollide = false
		v.ButtonPart.BillboardGui.Frame.Visible = false
	end
	
	if v:FindFirstChild("Dependency") then
		coroutine.resume(coroutine.create(function()
			v.ButtonPart.Transparency = 1
			v.ButtonPart.CanCollide = false
			v.ButtonPart.BillboardGui.Frame.Visible = false
			if boughtItems:WaitForChild(v.Dependency.Value, 100000) then
				v.ButtonPart.Transparency = 0
				v.ButtonPart.CanCollide = true
				v.ButtonPart.BillboardGui.Frame.Visible = true
			end
		end))
	end
	
	v.ButtonPart.Touched:Connect(function(hit)
		if hit.Parent:FindFirstChild("Humanoid") then
			local player = game.Players:GetPlayerFromCharacter(hit.Parent)
			if Values.OwnerValue.Value == player then
				if v.ButtonPart.CanCollide == true and v.ButtonPart.Transparency == 0 then
					if player:WaitForChild("leaderstats").Cash.Value >= v.Price.Value then
						player.leaderstats.Cash.Value -= v.Price.Value
						Items[v.Item.Value].Parent = boughtItems
						v:Destroy()
					end
				end
			end
		end
	end)
end

-- Cash Functions

local Debounce = false

mainItems.CashButton.ButtonPart.Touched:Connect(function(hit)
	if hit.Parent:FindFirstChild("Humanoid") then
		local player = game.Players:GetPlayerFromCharacter(hit.Parent)
		if Values.OwnerValue.Value == player then
			if Debounce == false then
				Debounce = true
				
				if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, 108614806) then
					player:WaitForChild("leaderstats").Cash.Value += Values.CashValue.Value * 2
					wait()
					Values.CashValue.Value = 0
					wait(1)
					Debounce = false
				else
				player:WaitForChild("leaderstats").Cash.Value += Values.CashValue.Value
				wait()
				Values.CashValue.Value = 0
				wait(1)
					Debounce = false
				    end
			end
		end
	end
end)

while wait() do
	mainItems.CashButton.ScreenPart.SurfaceGui.TextLabel.Text = "$"..Values.CashValue.Value
end