So I have made a script where a part gets created. Clone1 is a script that is stored in serverstorage The issue is that when another part gets created. The Clone1 changes Parent to the new part that gets created. And I want every part that gets created to have this script inside of it. How do I fix this
local Clone1 = game.ServerStorage.Clone1:Clone() While true do part = Instance.new("Part", workspace.Blocks) part.Anchored = true part.Size = Vector3.new(3, 3, 3) part.Position = Vector3.new(0, 1.5, 0) Clone1.Parent = part wait(1)
I wrote a script that would work, here it is:
local ServerStorage = game:GetService("ServerStorage") while true do local clone1 = ServerStorage:WaitForChild("Clone1"):Clone() local part = Instance.new("Part", game.Workspace.Blocks) part.Anchored = true part.Size = Vector3.new(3, 3, 3) part.Position = Vector3.new(0, 1.5, 0) clone1.Parent = part wait(1) end
As you can see, the only thing I did was put the clone1
variable inside the while loop and add an end
at the end.
I'm gonna try my best to explain why your code didn't work.
local Clone1 = game.ServerStorage.Clone1:Clone() While true do part = Instance.new("Part", workspace.Blocks) part.Anchored = true part.Size = Vector3.new(3, 3, 3) part.Position = Vector3.new(0, 1.5, 0) Clone1.Parent = part wait(1)
First, the Clone1
variable doesn't change, it always returns the same object so when you set the parent to the new part, it just moves it, and doesn't create a new object.
We fixed that by moving the variable inside the while loop to clone the script repeatedly which changes the object that it's referencing. Confusing, yes. Sorry, I'm not good at explaining stuff...
Then I don't know if this made any difference but end
closing the loop is there because otherwise, it should throw an error that it expects an end
at the end of the file.
That's all; if you've got any questions you can ask in comments.