ChunkyMap
Photorealistic Dynmap world map renderer using Chunky (Minecraft 1.13 and newer). :world_map::sparkles:
Install / Use
/learn @leMaik/ChunkyMapREADME
ChunkyMap
ChunkyMap is a map renderer for [Dynmap][dynmap] that uses [Chunky][chunky] to render the map tiles. This combines photorealistic rendering with the convenience and automatic updates of Dynmap. ChunkyMap is implemented as a drop-in replacement for the HDMap that comes with Dynmap.

Compatibility matrix
| ChunkyMap | Minecraft | Dynmap | Chunky | Branch | Spigot | Fabric | | ---------- | --------------- | ------- | ------ | -------------- | ------ | ------ | | 2.7.0 | 1.21.4 or older | 3.8 | 2.5.0 | master | ✅ | ✅ | | 2.6.0-pre4 | 1.19 or older | 3.2 | 2.4.4 | chunky-2.4 | ✅ | | | 2.5.2 | 1.16 or older | 2.3-3.0 | 2.3.0 | chunky-2.3 | ✅ | |
Only the master branch is actively maintained, but PRs on the other branches are welcome.
Installation
-
Download the latest jar from [the releases page][latest-release] and put it in your plugins directory.
-
Edit
plugins/dynmap/worlds.txtand change theclassoption fromorg.dynmap.hdmap.HDMaptode.lemaik.chunkymap.dynmap.ChunkyMapfor all maps that you want to render with Chunky.
You can use any perspective and resolution for those maps ([list of available perspectives][dynmap-perspectives]).This example
worlds.txtfor a single map of a world calledworldmight help you:worlds: - name: world maps: - class: de.lemaik.chunkymap.dynmap.ChunkyMap name: chunky title: World perspective: iso_SE_30_hires -
Restart your server (restart not reload).
-
Re-render the worlds you enabled the new renderer for by running the following command from the server console:
dynmap fullrender world(replaceworldwith the actual world name). -
Wait for it… ⌛
-
Take a look at your new, shiny maps! ✨
Configuration
The maps can be configured by adding options to the map's section in the world.txt file.
| Option | Description | Default |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| samplesPerPixel | Samples per pixel that Chunky should render. More SPP improves the render quality but also increases render time. | 100 |
| chunkyThreads | Number of threads per Chunky instance. More threads will decrease render time but increase the CPU load of your server. | 2 |
| chunkyCpuLoad | Percentage of CPU time to use, per Chunky thread. Note that this only throttles the CPU usage during rendering, not during scene loading or post processing. | 100 |
| resourcepacks | List of resourcepack paths, relative to plugins/dynmap. This also supports data packs for custom biomes. Use this option to specify resourcepacks for a map. The texturepack in Dynmap's configuration.txt is ignored by ChunkyMap. | None |
| chunkPadding | Radius of additional chunks to be loaded around each chunk that is required to render a tile of the map. This can be used to reduce artifacts caused by shadows and reflections. | 0 |
| requeueFailedTiles | Put tiles that failed to render back into the tile queue. | true |
| templateScene | Path to a Chunky scene file (JSON), relative to plugins/dynmap. Use this option to customize the scene that is used for rendering the tiles, e.g. to change the water color. | None |
| texturepackVersion | The Minecraft version that should be used as fallback textures | Your server version |
| denoiser/enabled | Enable denoising using Intel Open Image Denoise. Only works on Linux | false |
| denoiser/albedoSamplesPerPixel | Samples per pixel for the albedo map. Setting this to 0 will disable the albedo and normal map. | 4 |
| denoiser/normalSamplesPerPixel | Samples per pixel for the normal map. Setting this to 0 will disable the normal map. | 4 |
| chunkycloud/enabled | Render tiles using the Chunky Cloud render service | false |
| chunkycloud/apiKey | API Key for the Chunky Cloud render service | |
| chunkycloud/initializeLocally | Generate the octree locally. Less data to upload, faster render times but will use a lot of CPU locally. | true |
:warning: A forward slash (/) in the option name means that the right part is a nested option and needs to be put into the next line and indented properly. Take a look at the examples below.
Example configurations
Simple map rendered with ChunkyMap
plugins/dynmap/worlds.txt:
worlds:
- name: world
maps:
- class: de.lemaik.chunkymap.dynmap.ChunkyMap
name: chunky
title: Chunky
perspective: iso_SE_30_hires
chunkyThreads: 2
samplesPerPixel: 20
denoiser:
enabled: true
albedoSamplesPerPixel: 4
normalSamplesPerPixel: 4
Custom perspectives
Like the default dynmap renderer, ChunkyMap supports custom perspectives. As a starting point, you can use the built-in perspectives from perspectives.txt and customize them. More information on how to define custom perspectives can be found in the corresponding Dynmap wiki article.
The following example adds a maximum height to the nether world so that the dynmap doesn't only show the bedrock layer on top of it.
plugins/dynmap/worlds.txt:
worlds:
- name: world_nether
maps:
- class: de.lemaik.chunkymap.dynmap.ChunkyMap
name: chunky_nether
title: Nether
perspective: iso_SE_30_hires_nether
chunkyThreads: 2
samplesPerPixel: 20
plugins/dynmap/custom-perspectives.txt:
perspectives:
- class: org.dynmap.hdmap.IsoHDPerspective
name: iso_SE_30_hires_nether
azimuth: 135
inclination: 30
scale: 16
maximumheight: 100 # the bedrock layer is at 127
Rendering ChunkyMap on ChunkyCloud
plugins/dynmap/worlds.txt:
worlds:
- name: world
maps:
- class: de.lemaik.chunkymap.dynmap.ChunkyMap
name: chunky
title: Chunky
perspective: iso_SE_30_hires
samplesPerPixel: 20
chunkycloud:
enabled: true
initializeLocally: false
apiKey: your-secret-api-key
Customizing the look of a map with template scenes
You can change how the map looks by providing a template scene. That can be any Chunky scene (.json) file or a partial scene file (i.e. a .json file that only contains the values that should be changed). ChunkyMap will import many scene options from the template scene, including the sun position, fog and water configuration.
The following example changes the default gray water color to blue.
plugins/dynmap/worlds.txt:
worlds:
- name: world
maps:
- class: de.lemaik.chunkymap.dynmap.ChunkyMap
name: chunky
title: Chunky
perspective: iso_SE_30_hires
chunkyThreads: 2
samplesPerPixel: 20
templateScene: blueWater.json
plugins/dynmap/blueWater.json:
{
"useCustomWaterColor": true,
"waterColor": {
"red": 0.029,
"green": 0.031,
"blue": 0.16
}
}
Ceveats
- Rendering is pretty slow, but I'll improve this by rendering multiple tiles as one image in the future.
- Chun
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
