local door2_pos = script.Parent.Door2.CFrame * CFrame.new(0,0,5)
local door1_pos = script.Parent.Door1.CFrame * CFrame.new(0,0,-5)
or
local door2_pos = script.Parent.Door2.CFrame * CFrame.new(5,0,0)
local door1_pos = script.Parent.Door1.CFrame * CFrame.new(-5,0,0)
should fix this. The reason why Vector3.new() doesn’t work is because it uses the global space but with * CFrame.new() it now uses the local space that you referenced first with script.Parent.Door2.CFrame since cframe consists of position and orientation at the same time.