What Dynmap Does

Dynmap renders your Minecraft world into a zoomable, pannable web map that updates in real time as players explore and build. It runs an embedded HTTP server on your Minecraft server machine, typically on port 8123. Anyone with the URL can open the map in a browser and watch player positions update live, see the world rendered in isometric or flat top-down views, and read chat messages as an overlay. It is a popular feature for community survival servers because it lets players plan where to build and lets newcomers see what has already been claimed.

Dynmap tiles the world progressively as players explore, so it does not need to render the entire map up front. You can also trigger a full render manually from the console to pre-generate all tiles for a region. Renders use disk space for the tile images: a moderately explored survival world with a 5,000-block radius typically uses 1 to 5 GB of tile data.

Downloading and Installing Dynmap

Download Dynmap from SpigotMC or from the GitHub releases page. Make sure you pick the build that matches your Minecraft version. Upload the JAR to your plugins/ directory and restart the server. Dynmap generates its configuration under plugins/dynmap/ on first boot.

When the server comes back up, you should see a Dynmap startup message in the console indicating it started the web server. If the web server fails to bind, it is usually because port 8123 is not open in your firewall or is already in use by another process. Open port 8123 in your firewall rules (TCP inbound) to make the map accessible.

Accessing Your Map on Port 8123

Open a browser and go to http://your.server.ip:8123. You should see the Dynmap web interface with your world rendered. The map starts rendering tiles for the spawn area and any chunks players have already explored. Initially only the area around spawn will be visible; the rest fills in as players move around.

To pre-render the map for a specific world, run the following from your console. This triggers a full render and can take a long time for large worlds:

dynmap fullrender world

Replace world with the actual world name. You can check render progress with dynmap stats in the console.

Basic Configuration: World Names and Map Types

Open plugins/dynmap/worlds.txt (or the equivalent configuration in your Dynmap version) to customize world display. The main configuration file is plugins/dynmap/configuration.txt. Key settings to review:

# Web server port
webserver-port: 8123

# Update period in seconds (how often tile updates are pushed)
updaterate: 2

# Show player faces on the map
showplayerfacesinmenu: true

# Require login to see the map (false = public)
login-required: false

# Chat on map
webchat-permissions: true

The updaterate setting controls how often the live view updates. Lower values make the map more real-time but increase server load. A value of 2 is appropriate for most servers. Set login-required: true if you want the map to be private and only accessible to logged-in panel users.

Player Visibility Settings

By default all online players are visible on the map with their usernames and face icons. You can control this in several ways. Players can hide themselves using the in-game command:

/dynmap hide
/dynmap show

As a server operator, you can hide all players by default and let them opt in, or force-hide specific players. In configuration.txt, set default-player-visibility: false to make players invisible by default. You can also set player-info-protected: true to prevent anonymous visitors from seeing player names and positions, showing them to only registered map users. For servers where player locations are sensitive (PvP or competitive modes), these settings prevent map-based griefing.

Performance Tips for Busy Servers

Dynmap's main performance cost comes from tile rendering. Each rendered chunk update writes image tiles to disk. On a busy survival server with many players exploring new chunks simultaneously, this can add up quickly. Several settings help manage the load:

# Reduce render threads to spare CPU for gameplay
renderacceleratethreshold: 60
renderaccelerateinterval: 0.2

# Use faster but lower quality render
renderchat: false

# Increase update period if lag is noticeable
updaterate: 5

The most effective optimization is to use an NVMe SSD for tile storage (which is what NetSkyway servers use). Tile writes are many small random writes, and NVMe handles these far faster than SATA SSDs or HDDs. If your map folder grows too large, you can delete old tile data and re-render specific regions using dynmap radiusrender world x z radius to limit the render to a specific area rather than the full world.

If you want to serve the map through your own domain with HTTPS, place an nginx reverse proxy in front of port 8123. Configure nginx to proxy /map/ or a dedicated subdomain to localhost:8123 and handle SSL termination there. This is a common setup for servers that link the map from their website.