I'm not sure how to make this Key Card door open using tween, instead of CFrame.

Here's the door code:

local door = script.Parent
local bool = true
local bool2 = true
local clearance = {
	["Card-Omni"] = true, 
	["Card-L5"] = true, 
	["Card-L4"] = true,
	["Card-L3"] = true,
	["Card-L2"] = true,
	["Card-L1"] = true,
	["Armory Card"] = true,
	
}

function openDoor()
	script.Parent.DoorOpen:play()
	for i = 1,(door.Size.z / 0.30) do
		door.CFrame = door.CFrame - (door.CFrame.lookVector * 0.30)
		wait()
				end
	door.Transparency = 1
			for i,v in pairs(door:GetChildren()) do
				if v:IsA("Decal") then
					v.Transparency = 1
		end
	end
	wait(3)
	door.Transparency = 0
			for i,v in pairs(door:GetChildren()) do
				if v:IsA("Decal") then
					v.Transparency = 0
				end
			end
	script.Parent.DoorClose:play()
	for i = 1,(door.Size.z / 0.30) do
		wait()
		door.CFrame = door.CFrame + (door.CFrame.lookVector * 0.30)
		end
	end

script.Parent.Parent.KeycardReader1.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and bool then
		bool = false
		script.Parent.AccessGranted:play()
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Lime green")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Lime green")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Lime green")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Lime green")
		
		openDoor()
		wait(1)
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Lily white")
		
		bool = true
	elseif touch.Name == "Handle" and not clearance[touch.Parent.Name] and bool2 then
		bool2 = false
		script.Parent.AccessDenied:play()
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Really red")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Really red")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Really red")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Really red")
		wait(1)
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Lily white")
		bool2 = true
	end
end)

script.Parent.Parent.KeycardReader2.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and bool then
		bool = false
		script.Parent.AccessGranted:play()
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Lime green")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Lime green")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Lime green")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Lime green")
		
		openDoor()
		wait(1)
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Lily white")
	
		bool = true
	elseif touch.Name == "Handle" and not clearance[touch.Parent.Name] and bool2 then
		bool2 = false
		script.Parent.AccessDenied:play()
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Really red")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Really red")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Really red")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Really red")
		wait(1)
		script.Parent.Parent.Light1.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light2.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light3.brickColor = BrickColor.new("Lily white")
		script.Parent.Parent.Light4.brickColor = BrickColor.new("Lily white")
		bool2 = true
	end
end)

1 comment

0

try using more variables.