It's breaking because when you clone the item, it is stored in some location I would assume to be nil. When you take that clone and drag it into workspace, then it gets moved. Once that clone is gone, it is gone for good. You can make a clone of a clone though, and it should not break.
local clone1 = game.Workspace.glassPanes:Clone()
local clone2 = game.Workspace.glass1:Clone()
local clone3 = game.Workspace.glass2:Clone()
local cloneuno = clone1:Clone()
local clonedos = clone2:Clone()
local clonetres = clone3:Clone()
cloneuno.Parent = workspace
clonedos.Parent = workspace
clonetres.Parent = workspace
Alright, I will make a example. If you were to make a regen button for say, a building set. Then you would start off with clone = script.Parent.Model:Clone(), then later when you have the touched event, you would have clone.Parent = workspace. Well you have basically used up your clone, and you can't hit the button again.
Try this scenario now, you start the script with clone = script.Parent.Model:Clone(). This means you have a clone saved in the script or a unknown location. Later when you touch the brick, then you should have newclone = clone:Clone() newclone.Parent = workspace. This way, you still have that first clone in that unknown location, and you're just making a copy of it to place into workspace. This code you can use over and over again.
2 comments
Check out line 8.
There is nothing moving the clone, although in another script it gets deleted soon after. This doesn't explain why it would be stored in a location that is nil the second time