radars are actually very easy. heres some speudocode
/psedocode/
iterate through ships
determine if you want this on the radar
determine what color you want the blip to be and set it
vector subtract your position from the target's position (make your ship 0'0'0)
determine if you still want to do this. is it in range (pos:getMagnitude() < x)?
rotate the target's position vector by your orientation matrix (player.Orientation:rotateVector(target.Position)), this line (and the one above it) puts the object in your frame of reverence
determine if you still want to render this. is in the scan cone? etc. (do this a lot, especially before big and potentially unnecessary calculations, it will make it faster)
\pseudocode\
now you decide how you want these dots to be displayed, the math here depends on what you want done. it may just involve some simple scaling and clipping for orthographic projections, or trig functions for fish eye or hemispheric modes. but regaurdless this is where the look of the radar is defined. for example, a hemispherical radar, i used something like x,y = (pos.x/pos:getMagnitude()) * scaler, (pos.y/pos:getMagnitude()) * scaler. basic knowledge of trig and vector math comes in handy here. once you determine where you want to draw a blip, and what you want to draw (can be a pixel, a circle, but i use a small icon myself).
Well, maybe a toggle switch for forward 2D / rear 2D / forward and rear 2D / 3D orb?
how you want different radars to be selectable is entirely arbitrary, do you want every mod to have the same set of radars to choose from, or do you want it so modders can say this mod (or this ship) uses this radar (or this ship uses this other radar). while it makes sense to set it as a global flag, it seems the feature of multiple radars would have a multitude of applications that a global flag would destroy. i myself would make it a hud_gauges.tbl thing. (of course my scripted gauges have their own implementation all together with their own table).