while true do for i,v in pairs(script.Parent:GetChildren()) do v.CFrame = v.CFrame * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/25) wait() end end
the Error is 11:55:06.603 - CFrame is not a valid member of Script 11:55:06.604 - Script 'Workspace.Wall.spin', Line 3 11:55:06.605 - Stack End
http://prntscr.com/9mhy2a
What your asking you script to do is go through all the children in the model Wall and set the CFrame of each child. But because you put the script into the model, it also tries to set the CFrame of the script, which is not a valid member (a la the error you got).
To fix this we can use the method of Instance :IsA()
to check to see what the current child you're looking at is, and if it is a part, then set the CFrame.
while true do for _, child in next, script.Parent:GetChildren() do if child:IsA("BasePart") then child.CFrame = child.CFrame*CFrame.Angles(0, 0, math.pi/25) end end wait() end
It's trying to "rotate" your script as well. What you want to do is to make it so it excludes your script and only tries to change the cframes of the parts.
Ah, the issue is quite simple, here's an explanation:
The error: The CFrame property is only for parts, and basically what the script has tried to do is edit the CFrame property on a script which it doesn't have.
The fix: In order to ensure that the script doesn't attempt to change the CFrame of something which hasn't got a CFrame property, you should do something along the lines of this:
while true do for i,v in pairs(script.Parent:GetChildren()) do if v:IsA("BasePart") then v.CFrame = v.CFrame * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/25) wait() end end end
What I've added in your script is the following line: if v:IsA("BasePart") then ... end
. What this does is check if it is a Part, Wedge, Union, Cylinder, Sphere etc. and if it is, applies the CFrame value. This would prevent the script from breaking, as this filters out what is a part, and what isn't.
The :IsA("")
basically asks: Is this a Part?, Is this a Script?, Is this a SpotLight? and things of the sort, so you are able to filter parts out.
I hope this explanation has helped, please do leave a comment if you require further assistance!