So, I made the script for the part to move up down constantly with while true do function. But it won't work I don't know what is wrong...
Here's the script(its long):
local part = script.Parent.Parent.VIPTEXT while true do part.Position = "-668.4, 12.1, -102.3" wait(0.5) part.Position = "-668.4, 12.2, -102.3" wait(0.5) part.Position = "-668.4, 12.3, -102.3" wait(0.5) part.Position = "-668.4, 12.4, -102.3" wait(0.5) part.Position = "-668.4, 12.5, -102.3" wait(0.5) part.Position = "-668.4, 12.6, -102.3" wait(0.5) part.Position = "-668.4, 12.7, -102.3" wait(0.5) part.Position = "-668.4, 12.8, -102.3" wait(0.5) part.Position = "-668.4, 12.9, -102.3" wait(0.5) part.Position = "-668.4, 13, -102.3" wait(0.5) part.Position = "-668.4, 13.1, -102.3" wait(0.5) part.Position = "-668.4, 13.2, -102.3" wait(0.5) part.Position = "-668.4, 13.3, -102.3" wait(0.5) part.Position = "-668.4, 13.4, -102.3" wait(0.5) part.Position = "-668.4, 13.5, -102.3" wait(0.5) part.Position = "-668.4, 13.6, -102.3" wait(0.5) part.Position = "-668.4, 13.7, -102.3" wait(0.5) part.Position = "-668.4, 13.8, -102.3" wait(0.5) part.Position = "-668.4, 13.9, -102.3" wait(0.5) part.Position = "-668.4, 14, -102.3" wait(0.5) part.Position = "-668.4, 14.1, -102.3" wait(0.5) part.Position = "-668.4, 14.2, -102.3" wait(0.5) part.Position = "-668.4, 14.3, -102.3" wait(0.5) part.Position = "-668.4, 14.4, -102.3" wait(0.5) part.Position = "-668.4, 14.5, -102.3" wait(0.5) part.Position = "-668.4, 14.6, -102.3" wait(0.5) part.Position = "-668.4, 14.7, -102.3" wait(0.5) part.Position = "-668.4, 14.8, -102.3" wait(0.5) part.Position = "-668.4, 14.9, -102.3" wait(0.5) part.Position = "-668.4, 15, -102.3" wait(0.5) part.Position = "-668.4, 14.9, -102.3" wait(0.5) part.Position = "-668.4, 14.8, -102.3" wait(0.5) part.Position = "-668.4, 14.7, -102.3" wait(0.5) part.Position = "-668.4, 14.6, -102.3" wait(0.5) part.Position = "-668.4, 14.5, -102.3" wait(0.5) part.Position = "-668.4, 14.4, -102.3" wait(0.5) part.Position = "-668.4, 14.3, -102.3" wait(0.5) part.Position = "-668.4, 14.2, -102.3" wait(0.5) part.Position = "-668.4, 14.1, -102.3" wait(0.5) part.Position = "-668.4, 13, -102.3" wait(0.5) part.Position = "-668.4, 13.9, -102.3" wait(0.5) part.Position = "-668.4, 13.8, -102.3" wait(0.5) part.Position = "-668.4, 13.7, -102.3" wait(0.5) part.Position = "-668.4, 13.6, -102.3" wait(0.5) part.Position = "-668.4, 13.5, -102.3" wait(0.5) part.Position = "-668.4, 13.4, -102.3" wait(0.5) part.Position = "-668.4, 13.3, -102.3" wait(0.5) part.Position = "-668.4, 13.2, -102.3" wait(0.5) part.Position = "-668.4, 13.1, -102.3" wait(0.5) part.Position = "-668.4, 12, -102.3" wait(0.5) part.Position = "-668.4, 12.1, -102.3" wait(0.5) end
Your problem is that you set the position incorrectly. You should do it like this:
part.CFrame = CFrame.new(#, #, #)
Also, your script is inefficient. I was once told that when you're scripting, you should be lazy. This means that do not repeat yourself. Instead of setting the part's position for every 0.1 of a stud, make it into two repeat-until loops. The script should then look like this:
local part = script.Parent.Parent.VIPTEXT while true do repeat part.CFrame = part.CFrame.new(part.Position.X, part.Position.Y + 0.1, part.Position.Z) until part.Position.Y >= 15 end repeat part.CFrame = CFrame.new(part.Position.X, part.Position.Y - 0.1, part.Position.Z) until part.Position.Y <= 12.1 end end
Notice how instead of 106 lines we now have only 10 lines.
Also I didn't test this yet, tell me if it doesn't work
Accept if this helped you thx