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
11:31:33.210 - Object is not a valid member of Model
11:31:33.210 - Script 'Workspace.Tycoon Kit.Tycoons.Bright blue.PurchaseHandler', Line 41