A new feature has been added to BYOND starting in version 444. It is now possible to use extra map controls to display HUD objects, instead of being limited to only one map. The main, default map shows the game world and mobs moving around, etc., but you can put HUD elements into other map controls to make your interface more slick.
Here's how the process works: First, in your regular game skin you should already have a map control, and it should be marked as the default. Wherever you like, add a new map control and give it a unique name, like "radar_map". This map should not be set as a default; it will only be used for showing screen objects.
Now to show an object in that map, you'll need to setup your code with the right screen_loc value. If you want to show a HUD object in a secondary map, use the format "[map]:[screen_loc]", like this:
obj
radar_grid
icon = 'radar.dmi'
screen_loc = "radar_map:1,1 to 5,5"
Once the object is added to client.screen, it should be visible in the radar_map control you've created.
The map will try to show all the screen objects you put into it, so in this example radar_map would be 5×5 tiles in size.
The Demo
I've created a simple demo for this called Second HUD. If you download and run the demo you'll see three maps: Two with icons, one with text.
The main map is the big one, and it shows your mob moving around on the playing field. The other two are special HUD-only maps, map2 and map3. Both of these have been filled with a few example objects.
In map2, you'll see that the farthest object to the left has a screen_loc of "map2:1,1", and the topmost is "map2:4,4". But way off to the right, there's an object with "map2:6,0" as its screen_loc. This stretches out the HUD to 6 tiles wide, and 5 tiles high.
In map3, the object furthest to the southwest is at "map3:0,0 to 2,2". Furthest north is "map3:2,3", and furthest east is "map3:3,2", so that makes map3 4×4 tiles in size.
If you hover your mouse cursor over any of the objects in either of those two HUDs, you'll see their name and the screen_loc they were given. That's a little something I put into the demo to make it easier to see what's positioned where. If you were really using this for a radar screen or something though, you could just as easily have a blip with the name "Unidentified target" and make it clickable to select a target. The objs you see in these HUDs are just like any other screen object--by adding the necessary procs you can click them, drag and drop, etc.
As with any new feature the fun comes in seeing what people will do with it, so I can't wait to see what clever concepts people use this for in their own games.