I ran this code and it gave me an error attempt to index global 'self' (a nil value)
hook.Add( "PostDrawOpaqueRenderables","2d3d", function( )
cam.Start3D2D( Vector( self.Entity:GetPos() ), Angle(0, -90, 90), 1 )
surface.SetDrawColor( 255, 0, 255 )
surface.DrawTexturedRect( 0, 0, 500, 500 )
cam.End3D2D()
end)