the PlayerMouse.Target seems the best choice, it has no visual effect on this mouse, one can be added with own logic, own decals etc, and it gives the behaviour wanted.
local mouse = game.Players.LocalPlayer:GetMouse()
local DoorModel = workspace:WaitForChild("Door")--put in your model workspace path here
local Box = Instance.new("SelectionBox")
Box.Parent = workspace
if mouse.Target:IsDescendantOf(DoorModel) then
Box.Adornee = mouse.Target
Box.Adornee = nil
Just iterating on one of the above answers a bit, there’s no reason to create new selectionboxes in renderstepped which could be performance expensive, cheaper to have one already made, store a reference and just set the Adornee property.