From CustomCoD Wiki
1. In Radiant, place two script_origin entities with a targetname value of "minimap_corner". These must be at opposite corners of a square which represents the playable area of your map. Keep in mind that the square won't necessarily be aligned to the X and Y axes; it will be aligned to North, which is set by northyaw in your worldspawn.
2.Compile and load the map in-game. Spawn in as a player. Set scr_minimap_height to a high value in the console. (For instance, 10000.) This is the height at which you want to take the screenshot from. Higher values will be closer to orthographic (which is good for a satellite image), but could cause z-fighting issues.
- When spawned in the map, press ~ to open the console and type in "/scr_minimap_height ###" where ### is how high you want the camera.
Also, set “exec minimap” in the console to activate a series of dvars that help the process. Your point of view should now be centered around a box around the map.
- After setting the minimap height type in "/exec minimap" in console.
Take a screenshot. In a graphics application, cut out the boxed area (crop to the area *just* inside the white lines), resize it to 512x512, and save it as compass_map_yourmapname.tga 24-bits (i.e., compass_map_mp_testmap) in the materials directory. In asset manager, setup and convert the file with settings like in the picture below.
3.Setup your map to use the new image.
Add the asset to your map's fast file (.csv) as "material,compass_map_yourmapname"
In your map's script file, insert the following line of code: maps\mp\_compass::setupMiniMap("compass_map_yourmapname");
- This can be found in "raw/maps/mp/", if you have not created this yet then copy one from another map and replace the compass line with yours.
The map texture should now be visible and properly aligned in your map.