- Assuming dynmap is already initialized and the folder structure has been generated during a first-time run,
<Spigot_Server>/plugins/dynmap/custom-perspectives.txtshould exist. - Open custom-perspectives.txt in a text editor.
- In this file below the line
perspectives:add the following lines of text.
- class: org.dynmap.hdmap.IsoHDPerspective
name: nether_top_map_lowres
maximumheight: 256
minimumheight: 129
inclination: 90
scale: 4
azimuth: 180- If SpigotMC is not running, start it and wait for everything to load, remaining in the server console. If SpigotMC is running, you can re-attach to the console using whatever method you have set up.
- Run
dynmap pause allto halt all live updates to the map.
[12:49:49] [Server thread/INFO]: [dynmap] Full/radius render pause set to true
[12:49:49] [Server thread/INFO]: [dynmap] Update render pause set to true
[12:49:49] [Server thread/INFO]: Full/Radius renders are PAUSED
[12:49:49] [Server thread/INFO]: Update renders are PAUSED
[12:49:49] [Server thread/INFO]: Zoom out processing is ACTIVE- If it does not already exist, add a new nether roof map with the command
dmap mapadd world_nether:nether_roof title:"The Roof" perspective:nether_top_map_lowres. - If it DOES already exist, you can change the perspective of an existing map with
dmap mapset world_nether:nether_roof perspective:nether_top_map_lowres.
[12:50:25] [Server thread/INFO]: Refreshing configuration for world world_nether
[12:50:25] [Server thread/INFO]: [dynmap] Loaded 4 maps of world 'world_nether'.
[12:50:25] [Server thread/INFO]: If you are done editing map data, run '/dynmap pause none' to resume rendering- Run
dynmap pause none.
[12:51:37] [Server thread/INFO]: [dynmap] Full/radius render pause set to false
[12:51:37] [Server thread/INFO]: [dynmap] Update render pause set to false
[12:51:37] [Server thread/INFO]: Full/Radius renders are ACTIVE
[12:51:37] [Server thread/INFO]: Update renders are ACTIVE
[12:51:37] [Server thread/INFO]: Zoom out processing is ACTIVE- Run
dynmap cancelrender world_nether.
[12:54:27] [Server thread/INFO]: Cancelled render for 'world_nether'(This could also be blank, meaning no fullrender was in progress.)
- Run
dynmap fullrender world_nether:nether_roof.
[12:56:54] [Server thread/INFO]: Full render starting on world 'world_nether'...
[12:58:34] [Dynmap Render Thread/INFO]: Full render of map 'nether_roof' of 'world_nether' in progress - 100 tiles rendered (50.30 msec/tile, 18.75 msec per render)
[13:00:13] [Dynmap Render Thread/INFO]: Full render of map 'nether_roof' of 'world_nether' in progress - 200 tiles rendered (53.48 msec/tile, 16.67 msec per render)
[13:01:54] [Dynmap Render Thread/INFO]: Full render of map 'nether_roof' of 'world_nether' in progress - 300 tiles rendered (49.51 msec/tile, 15.78 msec per render)
[13:03:34] [Dynmap Render Thread/INFO]: Full render of map 'nether_roof' of 'world_nether' in progress - 400 tiles rendered (45.63 msec/tile, 15.27 msec per render)- Note in the browser that the new map will not be assigned an icon in the right-hand map list, and as the new perspective starts at y=129, the nether roof texture will not be included. However, the spawn icon should be displayed at (0,0). As I have a standard ilmango zombie pigman gold farm on the nether roof, that is displayed near spawn as well.

- In the server console run
dynmap pause all - Run the command
dmap mapset world_nether:nether_roof icon:images/sign_warp.png - Return to the browser and note the updated icon now displays something like a white chat bubble with a black "><":

- Icons are stored in
<Spigot_Server>/plugins/dynmap/web/images. - You can create or find 16x16px custom PNG images, copying them into this folder for use within the server console.
- To load the newly copied PNG image, run the
dmap mapsetcommand again, changing theicon:images/sign_warp.pngbit toicon:images/<filename>.png
I threw together this one called which blends the bedrock block texture and the nether_portal block texture, and copied it in as
<Spigot_Server>/plugins/dynmap/web/images/bedrock_portal.png.Then I ran the command
dmap mapset world_nether:nether_roof icon:images/bedrock_portal.png, which I'm quite happy with!
- Finally, run
dynmap pause noneto resume the fullrender or active rendering process. If a full render is not in progress, the map will only update when a player loads the nether roof chunks and remains there for some minimum amount of time.
(Assuming you've already done everything previously mentioned)
- In the server console run
dynmap pause all. - In the file manager, open
<Spigot_Server>/plugins/dynmap/custom-perspectives.txtin a text editor. - Edit the line
minimumheight: 129, changing it tominimumheight: 128 - Save and close the text editor.
- In the server console run
reloadand wait for all server and plugin configurations to be re-read from their respective files. - Run
dynmap pause none. - Run
dynmap cancelrender world_nether. You'll either seeCancelled render for 'world_nether'if a fullrender was in progress, or nothing. - Run
dynmap fullrender world_nether:nether_roofand wait a few minutes for the first few chunks to render in the browser. If all is well, whatever was displayed before should now be overwritten with the grey/black bedrock texture.

