An offline-capable interactive map for "No Rest for The Wicked". Many things are Clauded, so code probably smells.
Live at 🗺 nrftw.seroperson.me.
The uniqueness of this this map is that it's completely extracted from game resources. Still some things could be inaccurate, as my algorithm probably isn't perfect, resource misreads are possible, and there is quite a lot of game logic which must be treated properly to project everyhing on the map.
As it's extracted from game resources, you can notice the following features:
- Currently there are around 3000 objects on the map, including: chest, shiny, item spawn points; lore readables; interactables, like doors or ladders; NPCs, enemy spawns; and many others.
- Objects on this map contain the exact coordinates, so you can distinguish whether something is located deeply in cave or at high ground.
- You can now see drop chances and loot pools on farmable resources.
- Likely it would be easy to update this map when further game updates come.
Still there is a lot of work to be done, such as:
- Loot spawn points tuning: currently there are some objects which don't exist visually in game, but exist in memory (or vice-versa). I guess again there is some logic which conditionally hides them.
- Region offset extracting: currently I manually calibrated some offsets to project object correctly on the map. Ideally this offset must be extracted from the game.
- Implement Black Trench map.
The process is actually challenging, but in a nutshell there is no rocket science:
- Unpack all resources using AssetRipper. They're necessary to get the map and extract some information from assets (such as translations).
- Install MelonLoader. It allows you to execute custom code at runtime and extract the necessary data.
- Install il2CppDumper and Ghidra. Follow this tutorial to disassemble the code. This way you can find the exact logic, find some necessary constants and so on.
After configuring the setup, everything left is to find the necessary game objects, dump them and put them on the map.
All necessary code is already in this repository:
nrftw-loot-dumper/- is a mod to dump game objects.scripts/generate_map_tiles.py- converts high-resolution map into the tiles for OpenLayers.scripts/extract_item_translations.py- extacts item names from.assetfiles.scripts/extract_condition_translations.py- extacts quest and world state names names from.assetfiles.- The rest code in this repository is an actual interactive web map.
To compile a bundle, just run npm run build.
This project is free for use and is not affiliated with or endorsed by the game developers. Published under GPL license.