pzmap2dzi is a command-line tool running on Windows to convert Project Zomboid map data into Deep Zoom format.
- HTML viewer for viewing the generated Deep Zoom image in both isometric and top down
- Render mod maps as switchable overlay
- Featured overlay map: zombie-heatmap, foraging zones, story area, etc.
- Tools for local saved games trimming
- Customized marks edit/export/import
- i18n support
- Multi-thread acceleration
- Tested with game version 41.78.16 and 42.0.2 UNSTABLE on both python 2.7 and python 3.11
- Storage: The full output size of isometric map for game version 41.78 is around 450GB (or 2.5TB with lossless png format) and consists of 4M files. SSD is recommended as high I/O bandwidth can reduce render time.
- Memory: Each worker requires approximately 1 GB of memory to work. An additional 4 GB of shared memory is needed if the shared memory acceleration is enabled. For example, the program will need 16 GB + 4 GB memory when using 16 threads with shared memory acceleration.
- Time
- Test machine spec & config
- CPU: AMD Ryzen 7 5700G @ 3.8 GHz (8 core, 16 threads)
- Memory: 64GB DDR4 2133
- Output Storage: NVME SSD
- Render Settings: 16 thread, shared memory acceleration enabled
- Game Version: 41.78.16
- The isometric map rending took around 3.5 hours (or even slower with lossless png format)
- The zombie heatmap took about half of the isometric map render time
- If you choose to render only top view map, output size will be around 500MB and can be done within half hour.
- Test machine spec & config
- Note
- Shared memory acceleration may not compatible with Hybrid Architecture CPUs and could result in render failures
- Shared memory acceleration is unstable with eariler python builds because of buggy implementation. Python 3.10.9+ or 3.11.1+ recommended
- To turn on shared memory acceleration, see Change rendering configurations section below
-
Install Python
-
Clone or download the project
-
Install requirements
-
Update variables in the
conf/conf.yamlfile- Change the
pz_rootvariable to ProjectZomboid game location on your computer - Change the
output_pathvariable to the desired output path - Change the
mod_rootvariable to steam workshop path if you want to render a mod map - Add desired mod maps to
mod_mapslist (For more infor about how to add mod maps see adding mod maps) - See examples for more config details
- Change the
-
Run the tool
Run
run.batto render all isometric and top view maps
See conf/conf.yaml and run.bat for more detials. You can also use scripts/gen_example_conf.py to generate some configuration examples.
-
Turn on shared memory acceleration
- In
render_confsection ofconf.yaml, setenable_cachetoture
- In
-
Do not render zombie heatmap
- Remove arguments
zombie zombie_topfromrun.bat
- Remove arguments
-
Do not render foraging zones
- Remove arguments
foraging foraging_topfromrun.bat
- Remove arguments
-
Do not render top view map
- Use
run_isometric_only.batinstead ofrun.bat
- Use
-
Do not render isometric view map
- Use
run_top_view_only.batinstead ofrun.bat
- Use
After the rendering, you get an html folder in your output path.
html
├── base/
├── base_top/
├── foraging/
├── foraging_top/
├── objects/
├── mod_maps/
├── openseadragon/
├── room/
├── zombie/
├── zombie_top/
├─ chrome.bat
├─ chrome_allow_file(need close chrome first).bat
├─ chrome_no_sicurity.bat
├─ pzmap.html
├─ pzmap.js
├─ run_server.bat
├─ server.py
└─ server_config.txt
Directly open pzmap.html will NOT work, as the Cross-Origin Resource Sharing (CORS) Policies will refuse to load Deep Zoom tiles from your locale disk by default.
There are two ways to bypass CORS:
- Start a server and host your files on your drive
- run
run_server.bat - Afterwards, you can open
http://localhost:8880/pzmap.htmlto view the image
- run
- If you are using Google Chrome with the default install path, you can do one of the followings:
- open
pzmap.htmlin a standalone tab with all web security disabled.- To do this, run
chrome_no_sicurity.bat
- To do this, run
- restart Chrome to allow locale HTML access to locale files.
- To do this, you need close all opening Chrome tabs
- Then run
chrome_allow_file(need close chrome first).bat
- open
-
To switch floors, use the button form
Layer0toLayer7on top of the page -
To enable mod maps overlay, use the
Mod Mapbutton and then select mod maps -
To enable/disable the grid, use the
Gridbutton- (Position of the grid will adjust according to the selected layer)
-
To enable/disable room info, use the
Roombutton- (Display room info of the current layer)
-
To enable/disable zombie heatmap, use the
Zombiebutton -
To enable/disable foraging zones, use the
Foragingbutton -
To switch between isometric view and top view, use the view switch link
-
To use Save File Trimmer
- Edit
server_config.txtand setsave_pathvariable to your save folder before start server (The default value is set for Windows 10) - The viewer must start in server mode using
run_server.bat
- Edit










