I have a tycoon that I am working on but every time I add a new item it wont work. it was working fine when I placed the first 3 items but when I add another dropper and conwall they won go away until bought. they are always there working. I need them to go away until bought.

---handels all buttons

objects = {}  ---empty erray for script
teamcolor = BrickColor.new(script.Parent.Name)
config = script.Parent.Parent.Parent.Configuration
wait(1)

script.Parent.Essentials.Spawn.TeamColor = teamcolor
script.Parent.Essentials.Spawn.BrickColor = teamcolor

script.Parent.Essentials.Collector.Touched:connect(function(hit)
	if hit:FindFirstChild("Cash") then
		script.Parent.Cash.Value = script.Parent.Cash.Value + hit.Cash.Value  --checks if they ahve cash and takes the price from it
		Instance.new("Sparkles",hit).Color=Color3.new(math.random(1,255)/255,math.random(1,255)/255,math.random(1,255)/255)
		game.Debris:AddItem(hit,0.1)
	end
end)


script.Parent.Essentials.Giver.Touched:connect(function(hit)
	local player = game.Players:GetPlayerFromCharacter(hit.Parent) ---makes sure that is is a player
	if player ~= nil then
		if script.Parent.Owner.Value == player then  ---makes sure that it is the owner
			if hit.Parent:FindFirstChild("Humanoid") then   
				if hit.Parent.Humanoid.Health > 0 then     ---makes sure thta the player is alive when touched
					local cashmoney = game.ServerStorage.MoneyStorage:FindFirstChild(player.Name)---checks the storage for cash
					if cashmoney ~= nil then 
						cashmoney.Value = cashmoney.Value + script.Parent.Cash.Value
						script.Parent.Cash.Value = 0  ----makes sure that they have enough money to buy the item
					end
				end
			end
		end
	end
end)

script.Parent:WaitForChild("Buttons")   ---- waits for all the buttons to arrive
for i,v in pairs(script.Parent.Buttons:GetChildren()) do   
	if v:FindFirstChild("Head") then   ---makes sure it is a button
		
		local object = script.Parent.Purchases:FindFirstChild(v.Object.Value)---look for an object by the name of the button
		if object ~= nil then
			objects[object.Name] = object:Clone()  --- clones the object
			object:Destroy()  ----destroys the object
		else
			print("Button: "..v.Name.." is missing its object and has been removed.")
			v.Head.CanCollide = false
			v.Head.Transparency = 1   ---removes the button
		end
								
		if v:FindFirstChild("Dependency") then
			v.Head.CanCollide = false
			v.Head.Transparency = 1
			coroutine.resume(coroutine.create(function()
				if script.Parent.PurchasedObjects:WaitForChild(v.Dependency.Value) then
					if config.ButtonFadeInDependency.Value == true then
						for i=1,20 do
							wait(config.ButtonFadeInTime.Value/20)
							v.Head.Transparency = v.Head.Transparency - 0.05
						end
					end
					v.Head.CanCollide = true
					v.Head.Transparency = 0
				end
			end))
		end
		
		v.Head.Touched:connect(function(hit)
			local player = game.Players:GetPlayerFromCharacter(hit.Parent)
			if v.Head.CanCollide == true then
				if player ~= nil then
					if script.Parent.Owner.Value == player then
						if hit.Parent:FindFirstChild("Humanoid") then
							if hit.Parent.Humanoid.Health > 0 then
								local cashmoney = game.ServerStorage.MoneyStorage:FindFirstChild(player.Name)
								if cashmoney ~= nil then
									if cashmoney.Value >= v.Price.Value then
										cashmoney.Value = cashmoney.Value - v.Price.Value  ---makes sure you have enough money
										objects[v.Object.Value].Parent = script.Parent.PurchasedObjects ---makes the object go away until bought
										if config.ButtonExplodeOnBuy.Value == true then
											local explosion = Instance.new("Explosion",workspace)
											explosion.Position = v.Head.Position
											explosion.DestroyJointRadiusPercent = 0
											explosion.BlastPressure = 0
										end
										if config.ButtonFadeOutOnBuy.Value == true then
											v.Head.CanCollide = false
											coroutine.resume(coroutine.create(function()
												for i=1,20 do
													wait(config.ButtonFadeOutTime.Value/20)
													v.Head.Transparency = v.Head.Transparency + 0.05
												end
											end))
										else
											v.Head.CanCollide = false
											v.Head.Transparency = 1
										end
									end
								end
							end
						end
					end
				end
			end
		end)
		
	end
end

2 comments

0

11:31:33.210 - Object is not a valid member of Model

0

11:31:33.210 - Script 'Workspace.Tycoon Kit.Tycoons.Bright blue.PurchaseHandler', Line 41