I have 3 problems for this invisible door script:
door = script.Parent
function Touch(plr)
local Head = plr.Parent:FindFirstChild("Head")
local Larm = plr.Parent:FindFirstChild("Left Arm")
local Rarm = plr.Parent:FindFirstChild("Right Arm")
local Torso = plr.Parent:FindFirstChild("Torso")
local Lleg = plr.Parent:FindFirstChild("Left Leg")
local Rleg = plr.Parent:FindFirstChild("Right Leg")
if Larm and Rarm and Torso and Lleg and Rleg and Head ~= nil then
Torso.Anchored = true
door.Parent.Parent.Invisible.Name = "Turning Invisible..."
wait(3)
Larm.Transparency = 1
Rarm.Transparency = 1
Torso.Transparency = 1
Lleg.Transparency = 1
Rleg.Transparency = 1
Head.Transparency = 1
Head.face:remove()-- Removes your face (Btw, "face" is the name of a decal in which your head is the parent of.)
Torso.Anchored = false
door.Parent.Parent[Turning Invisible...].Name = "Invisible"
script.Disabled = true
wait(3)
script.Disabled = false
end
end
door.Touched:connect(Touch)
Problem 1# = FIXED
Problem #2 = in lines 29 - 31, they only work 1 time.
Problem #3 = When used more than once, it doesn't unanchor the plr's torso.

3 comments
A warning: Line 12 doesn't mean what you think it means (though it still happens to be correct) -- the
~= nilonly applies to thehead.So you mean if only the head exists, then everything else becomes invisible too?
No, it will behave correctly. It's redundant to say
~= nil. If it'snil, it acts likefalse; actual parts will act liketrue, so the~= nilis unnecessary. I am just commenting thata and b ~= nilis NOT the same thing asa ~= nil and b ~= nil.