About this mod
Python 3.7+ script to generate a heatmap of exterior cells showing which/how many mods affect each cell. Includes a list of interior cells and what mods alter them. Does not alter game files, generates a single html file with the map + lists you can open in any browser.
- Requirements
- Permissions and credits
- Mirrors
- Changelogs
It will examine a folder of mods and build a html file with a map of exterior cells. It will show which mods alter a cell, with brighter colors meaning more mods affecting that cell. Mouse over a cell to see a tooltip with mods affecting that cell. Click on any cell with yellow text to jump to a list entry for that cell with the mods affecting it. Use [back] function of your browser to return to map. Modmapper will also build a list of interior cells and which mods alter them and add that list to the end of the html file, you can search like you would on any web page.
Modmapper does not alter any game files, it will read esp/esm files in a folder and produce a HTML file called "modmapper.html" in the same folder. It does not require access to other resources of a mod, just the esp or esm. You can use it to inspect entire modlists, or just look at a specific mod, the overlap between two mods, etc.
https://acidzebra.github.io/modmapper/
REQUIREMENTS
- Python 3.7 or later
- tes3conv.exe
- folder of esp/esm file(s)
Tested on English-language Windows with English-language game and Firefox. May produce strange results in other environments (haven't tested). Script will likely need some tinkering if you want to run it on another OS.
If you use MO2, you will likely have to use VFS explorer or similar tricks; I don't use MO2 so I couldn't tell you what to do.
HOW TO USE
- put modmapper.py + tes3conv.exe in the folder with ESP/ESM files you want to build a map for (this can be your data folder)
- open a command prompt, go to the folder you put everything in and type:
python modmapper.py "path_to_the_folder_you_put_everything_in"
- wait 1-2 minutes while modmapper examines all mods, and open the resulting modmapper.html file in a browser.
(the wait time is dependent on how many mods the script has to inspect, I have ~350 mods and it takes a minute or so)
INTERPRETING THE MAP/EXTERIOR CELLS
After opening modmapper.html you will see some program info and the start of the map.
Examined 334 files, skipped 4 files on the exclude list. Failed to convert 0 mods
Mods on the "failed to convert" list couldn't be converted with tes3conv.exe, this usually means there's a broken thing somewhere in the mod. It does not affect the functionality of modmapper (but you may want to have a close look at that mod, and the mod won't be on the map).Scroll to the right and maybe down a bit.
Green cells with yellow text: Morrowind/Bloodmoon area. Hover over cells to see tooltip with list of mods. Click on yellow cell text to go to list entry.
Red/Gray/Other color cells with yellow text: a new lands or other large mod is altering these cells. Modmapper will colorize cells for some mods it knows about: TR, SHotN, Cyrodiil, some others. This is to help distinguish from vanilla cells. Click on yellow cell text to go to list entry.
Blue cells with black text: no mod or game file alters this area at all (flat textureless ocean). Not clickable, no tooltip on hover.
INTERIOR CELLS
Interiors are listed at the bottom of the page, use CTRL+F and type (for instance) guild of mages to look for any interior cells with that name, and see what mods alter them.
ADVANCED/ADVENTUROUS USERS
It's a python script, edit it as you like. I tried to keep user-configurable things near the top of the page. Cell colorization for other mods was added as an afterthought and could be implemented better. This goes for most of the script. The CSS is pretty awful as I know less about CSS than I do about Python and I know very little about Python, but I did what I had to in order to make everything display more or less correctly.
Some tips:
- If you don't want specific mods to be included on the map and you don't want to remove them from the folder, you can add them to the excludelist.
- By default modmapper cleans up any files it generated while working, set deletemodjson to False if you want to keep them (speeds up re-runs)
- the function calcoutputcellcolor crudely controls map colors, it's pretty terrible because I wrote it as an afterthought.
FURTHER DEVELOPMENT
I got a little obsessed with this, and I'm still thinking up interesting things to add or change.