Hello there I am trying to make a door slide open when a certain rank is interacting with it. I tried this code but It didn't worked I tried true and false and it still did not work please help here is my code. Plus the group id is stored in numvalue "L". Sorry about too much lines I just need the group problem fixed.


local MOVE_IN_BY = 0.25 
local ROOM_LEFT = 0.35 
local WAIT_FOR = 0.2 

local TIME_OPEN = 0
local model = script.Parent
local door = model.Door

door.PrimaryPart = door.Main

local doorcf = door.Main.CFrame
local doorX = door.Main.Size.x

local doorClosed = true
local doorMoving = false

for _,button in pairs(model:children()) do
	game.Players.PlayerAdded:Connect(function(Player)
		if Player:GetRankInGroup(script.Parent.Parent.GroupValues.CoreGroup.ID.L.Value) == 255 then
			doorMoving = false
		else
			doorMoving = true
		end
	end)
	if button.Name == "Button" and button:FindFirstChild("ClickDetector") then
		button.ClickDetector.MouseClick:connect(function()
			if doorMoving then return end
			doorMoving = true
			if TIME_OPEN == 0 then
				if doorClosed then
					for i = 0,MOVE_IN_BY,0.05 do
						door:SetPrimaryPartCFrame(doorcf*CFrame.new(0,0,-i))
						wait()
					end
					wait(WAIT_FOR)
					for i = 0,doorX-ROOM_LEFT,0.05 do
						door:SetPrimaryPartCFrame(doorcf*CFrame.new(i,0,-MOVE_IN_BY))
						wait()
					end
					door:SetPrimaryPartCFrame(doorcf*CFrame.new(doorX-ROOM_LEFT,0,-MOVE_IN_BY))
					doorClosed = false
				else
					for i = doorX-ROOM_LEFT,0,-0.05 do
						door:SetPrimaryPartCFrame(doorcf*CFrame.new(i,0,-MOVE_IN_BY))
						wait()
					end
					wait(WAIT_FOR)
					for i = MOVE_IN_BY,0,-0.05 do
						door:SetPrimaryPartCFrame(doorcf*CFrame.new(0,0,-i))
						wait()
					end
					door:SetPrimaryPartCFrame(doorcf)
					doorClosed = true
				end
			else
				for i = 0,MOVE_IN_BY,0.05 do
					door:SetPrimaryPartCFrame(doorcf*CFrame.new(0,0,-i))
					wait()
				end
				wait(WAIT_FOR)
				for i = 0,doorX-ROOM_LEFT,0.05 do
					door:SetPrimaryPartCFrame(doorcf*CFrame.new(i,0,-MOVE_IN_BY))
					wait()
				end
				door:SetPrimaryPartCFrame(doorcf*CFrame.new(doorX-ROOM_LEFT,0,-MOVE_IN_BY))
				wait(TIME_OPEN)
				for i = doorX-ROOM_LEFT,0,-0.05 do
					door:SetPrimaryPartCFrame(doorcf*CFrame.new(i,0,-MOVE_IN_BY))
					wait()
				end
				wait(WAIT_FOR)
				for i = MOVE_IN_BY,0,-0.05 do
					door:SetPrimaryPartCFrame(doorcf*CFrame.new(0,0,-i))
					wait()
				end
				door:SetPrimaryPartCFrame(doorcf)
			end
			doorMoving = false
		end)
	end
end