- Assuming dynmap is already initialized and the folder structure has been generated during a first-time run,
<Spigot_Server>/plugins/dynmap/custom-perspectives.txt
should 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 all
to 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, repeat step 2, changing the
icon:images/sign_warp.png
bit 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 none
to 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.txt
in a text editor. - Edit the line
minimumheight: 129
, changing it tominimumheight: 128
- Save and close the text editor.
- In the server console run
reload
and 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_roof
and wait a few minutes for the first few tiles to render in the browser. If all is well, whatever was displayed before should now be overwritten with a dark grey houndstoothy bedrock texture.
With Dynmap 3.1 beta released for 1.16 (Nether) I am watching the Nether biome updates roll in gradually as I re-run a full render of world_nether:flat
.
And as I wait, I realized that in the time I wrote this to now my brothers and I also defeated the dragon and and started raiding End cities at which point I realized that its default lighting profile "brightnight" is extremely useful in finding cities and End gateways as the diamond flaring of end rods and torches really help when scanning a 10k x 10k map.
So I decided perhaps since the nether roof is most often used for portal hubs, I could change the lighting profile of world_nether:nether_roof
to brightnight as well.
dynmap pause all
dmap mapset world_nether:nether_roof lighting:brightnight
dynmap pause none
dynmap fullrender world_nether:nether_roof
And the result is quite stupendous!
Someone in the comments asked about how to add the red background you see in the world_nether:flat and world_nether:surface maps. Turns out this is all to do with some undocumented and unautomated dynmap features that live in the very hard-to-find HD Map Configuration help file.
- Open
<SpigotMC Directory>/plugins/dynmap/worlds.txt
. - Scroll down to
world_nether
and in the maps section, search for all separate map definitions. - Note that by default, the "flat" and "surface" maps for
world_nether
have a background property of #300806. - Copy this line into all applicable map sections. For our purposes, the nether_roof will look something like this:
- name: world_nether
title: The Nether
enabled: true
extrazoomout: 2
maps:
...
...
- class: org.dynmap.hdmap.HDMap
name: nether_roof
title: The Roof is on Fire!
icon: images/bedrock_portal.png
prefix: nether_roof
perspective: nether_top_map_lowres
...
...
background: '#300806'
append_to_world: ''
rgba() with transparency settings instead of the #RRGGBB format actually works!
In worlds.txt, replace background:'#300806'
with background: 'rgba(48,8,6,1.0)'
and reload.
Additionally I did some digging into the .js files and found that dynmap may be simply translating the background options of map definitions here into raw CSS. In this case, I tried another thing:
background: 'url("images/book.png")'
Also w3schools' CSS3 background documentation describes a method of embedding not only a background image, but also its positioning, tiling, repeat, and additionally a backup color into the same line.
background: 'lightblue url("images/book.png") fixed'
As docm77 is fond of saying, "Lawd a'mercy..."
We can also replace 'lightblue' with an RGB definition in #RGB, #RRGGBB, and rgba() formats.
background: 'rgba(48,8,6,0.5) url("images/book.png") fixed'
Not so spectactular, and the image is layered on top of the background color, so the alpha channel does not darken it any
This simply means that to properly make a GOOD background image, choosing something less busy and/or manually darkening it in photo editing software it may be preferrable.
@mesl I'm really not sure I know of a good way to do that (honestly, by this point I found dynmap to be the biggest resource hog on my server in both hard drive space and memory usage, so I've disabled it completely). It may be possible to force the air texture to an alpha color but I don't recall off the top of my head how textures are manipulated.