I am trying to make a complex sliding door in which various parts will retract a certain amount. However, the parts are not moving at all. This is my script:
local door = script.Parent
local y = door.l1.Position.Y
local z = door.l1.Position.Z
local oneleftorigin = door.l1.Position.X
local twoleftorigin = door.l2.Position.X
local threeleftorigin = door.l3.Position.X
local fourleftorigin = door.l4.Position.X
local fiveleftorigin = door.l5.Position.X
local sixleftorigin = door.l6.Position.X
local sevenleftorigin = door.l7.Position.X
local onerightorigin = door.r1.Position.X
local tworightorigin = door.r2.Position.X
local threerightorigin = door.r3.Position.X
local fourrightorigin = door.r4.Position.X
local fiverightorigin = door.r5.Position.X
local sixrightorigin = door.r6.Position.X
local sevenrightorigin = door.r7.Position.X
local goalone = 0.5
local goaltwo = 1.5
local goalthree = 3
local goalfour = 5.5
local goalfive = 9.5
local goalsix = 15
local goalseven = 22
local activated = 0
local oneleft = door.l1
local twoleft = door.l2
local threeleft = door.l3
local fourleft = door.l4
local fiveleft = door.l5
local sixleft = door.l6
local sevenleft = door.l7
local oneright = door.r1
local tworight = door.r2
local threeright = door.r3
local fourright = door.r4
local fiveright = door.r5
local sixright = door.r6
local sevenright = door.r7
function opendoor()
print("opening door")
while not oneleft.Position.X == (oneleftorigin + goalone) do
oneleft.CFrame = CFrame.new((oneleft.Position.X+0.1), y, z)
oneright.CFrame = CFrame.new((oneright.Position.X-0.1), y, z)
wait(0.1)
end
while not twoleft.Position.X == (twoleftorigin + goaltwo) do
twoleft.CFrame = CFrame.new((twoleft.Position.X+0.1), y, z)
tworight.CFrame = CFrame.new((tworight.Position.X-0.1), y, z)
wait(0.1)
end
while not threeleft.Position.X == (threeleftorigin + goalthree) do
threeleft.CFrame = CFrame.new((threeleft.Position.X+0.1), y, z)
threeright.CFrame = CFrame.new((threeright.Position.X-0.1), y, z)
wait(0.1)
end
while not fourleft.Position.X == (fourleftorigin + goalfour) do
fourleft.CFrame = CFrame.new((fourleft.Position.X+0.1), y, z)
fourright.CFrame = CFrame.new((fourright.Position.X-0.1), y, z)
wait(0.1)
end
while not fiveleft.Position.X == (fiveleftorigin + goalfive) do
fiveleft.CFrame = CFrame.new((fiveleft.Position.X+0.1), y, z)
fiveright.CFrame = CFrame.new((fiveright.Position.X-0.1), y, z)
wait(0.1)
end
while not sixleft.Position.X == (sixleftorigin + goalsix) do
sixleft.CFrame = CFrame.new((sixleft.Position.X+0.1), y, z)
sixright.CFrame = CFrame.new((sixright.Position.X-0.1), y, z)
wait(0.1)
end
while not sevenleft.Position.X == (sevenleftorigin + goalseven) do
sevenleft.CFrame = CFrame.new((sevenleft.Position.X+0.1), y, z)
sevenright.CFrame = CFrame.new((sevenright.Position.X-0.1), y, z)
wait(0.1)
end
wait(4)
while not oneleft.Position.X == (oneleftorigin) do
oneleft.CFrame = CFrame.new((oneleft.Position.X-0.1), y, z)
oneright.CFrame = CFrame.new((oneright.Position.X+0.1), y, z)
wait(0.1)
end
while not twoleft.Position.X == (twoleftorigin) do
twoleft.CFrame = CFrame.new((twoleft.Position.X-0.1), y, z)
tworight.CFrame = CFrame.new((tworight.Position.X+0.1), y, z)
wait(0.1)
end
while not threeleft.Position.X == (threeleftorigin) do
threeleft.CFrame = CFrame.new((threeleft.Position.X-0.1), y, z)
threeright.CFrame = CFrame.new((threeright.Position.X+0.1), y, z)
wait(0.1)
end
while not fourleft.Position.X == (fourleftorigin) do
fourleft.CFrame = CFrame.new((fourleft.Position.X-0.1), y, z)
fourright.CFrame = CFrame.new((fourright.Position.X+0.1), y, z)
wait(0.1)
end
while not fiveleft.Position.X == (fiveleftorigin) do
fiveleft.CFrame = CFrame.new((fiveleft.Position.X-0.1), y, z)
fiveright.CFrame = CFrame.new((fiveright.Position.X+0.1), y, z)
wait(0.1)
end
while not sixleft.Position.X == (sixleftorigin) do
sixleft.CFrame = CFrame.new((sixleft.Position.X-0.1), y, z)
sixright.CFrame = CFrame.new((sixright.Position.X+0.1), y, z)
wait(0.1)
end
while not sevenleft.Position.X == (sevenleftorigin) do
sevenleft.CFrame = CFrame.new((sevenleft.Position.X-0.1), y, z)
sevenright.CFrame = CFrame.new((sevenright.Position.X+0.1), y, z)
wait(0.1)
end
activated = 0
end
door.Trigger.Touched:Connect(function(part)
print("activated")
if activated == 0 and part.Parent.Humanoid then
print("opening")
activated = 1
opendoor()
end
end)
No error messages are returned, and all the print() functions at various points in the system are firing, so all the functions should be firing. I am assuming that either the while loops aren't being skipped, or the CFrame.new() lines are not changing the position of the parts, but I am not sure why this would be. Any help would be appreciated.

2 comments
what are you trying to accomplish?
i am trying to move the parts back a certain amount to make an opening door