Best way to draw VGUI on HUD?

Hello, I wanted to draw a RichText on the HUD, which text gets changed on certain stuff happening(obvious), but whats the best way to draw it? I Know not HUDPaint, since its a think hook, but which hook then, or no hook at all, just create it? Also, how do I notice which hook is a think hook? (I could run print() on each hooks obviously, but there are a bit of too much hooks :p)

Thanks for the answer!

You create your vgui element, set it to be painted manually, then call PaintManual from HUDPaint

[editline]31st July 2015[/editline]

Same thing for doing 3d vgui, call PaintManual inside of cam. Start3D

what is paintmanual exactly for? like some uses? - cant I just add text to the RichText element?

Also use this
I havent seen anybody use this, its really useful.