[GrimTools] Interactive World Map

Grim Dawn World Map

Offline/desktop version can be downloaded here


If you want you can support me via Patreon or Buy Me a Coffee.

You can join my discord server to discuss Grim Tools, leave feedback and bug reports.


Hey guys! So here’s the thing I’ve been working on and off for the past six months. I admit that it took longer than expected, but personally it was rather fun and challenging at times, and I’m quite happy with the outcome :stuck_out_tongue:

Here’s the list of main features:

  • First of all like all my other tools, the map is built automatically from the game data. This means that compared to maphack, which has some stuff missing and I believe is built manually, grimtools map is always up-to-date and shows reliable data. I don’t wanna diminish the value of maphack, it’s a really good resource, I’m just stating this for comparison sake.
  • It’s pretty fast, all the necessary data (just around 500kb) without images is fetched on page load, so all transitions between areas, search, etc. is instantaneous. Of course you’ll have to wait until map tiles are loaded if they aren’t cached already, but for now it seems to load pretty fast, unless of course you have crappy download speed.
  • By default the world overview map is shown (in game it’s called World Map, I just call it “overview” internally). If you click on a riftgate or on a devotion shrine, you will be navigated to its location.
  • The map includes markers for all important stuff, currently the lsit is as follows: riftgates, entrances and exits, shrines, notable chests and enemies, bounties, nemeses, super bosses, friendly NPCs, rogue dungeon entrances, detonation and repair sites, levers and dynamite locations.
  • If an entrance or an exit is one way, it’s indicated in the marker popup. If an entrance or an exit is initially hidden, e.g. a rift that spawns only after some quest is finished, it’s indicated by an asterisk symbol in the bottom right corner of the marker. One-way exit markers are semi-transparent and have lower z-index, cause they are not that important.
  • Shrine popups show whether the shrine is ruined or corrupted and also the items needed to restore it if it’s ruined, the listing is per difficulty. On the map itself each shrine marker has a difficulty indicator to the right of it — a combination of N/E/U letters (N = Normal, E = Elite, U=Ultimate).
  • Chest markers are divided into 4 categories: valuable chests, one-shot chests, locked chests and treasure troves. Valuable chests are the ones that are “supposedly” valuable — these are mostly hidden chests and some of boss chests, once again these are determined automatically and I might adjust the condition in future so the list of such chests can be expanded. Locked chests are usually the ones locked by area bosses or the ones in challenge rooms.
  • Notable enemy list currently includes all “Boss” tier monsters and monsters that are kill targets in quests. This means that certain Hero monsters that have MIs tied to them, e.g. Loxmere, are not present on the map yet, but this issue will be resolved in future when I refactor MI <> monster detection logic.
  • You can enable and disable markers by type (the first tab from the top on the left). Please note that if you navigate to a marker from search or from external link, but you have this marker type disabled, then it will be automatically enabled and you’ll be notified about it.
  • You can view the list of all areas (the second tab from the top on the left) and navigate to any of them. You can switch between alphabetically sorted and hierarchical area list presentation.
  • You can use global search (the third tab from the top on the left) to find any markers or areas on the map. If the search query is empty, you’ll see the collapsed list of all available search categories; you can expand them by clicking on them individually or by using “Expand all” / “Collapse all” button at the top of the list.
  • A rather handy feature is marker groups — if certain markers are internally linked together on the map, they belong to a group, e.g. there are 3 entrances to Smuggler’s Basin and they are all in the same group meaning only one of them spawns in a game session, same goes for any other marker types, like one-shot chests, treasure troves or nemesiss spawn points. Such markers have question mark in the bottom right corner indicating that the spawn point is not guaranteed. In search results these markers are aggregated in separate “Group #X” blocks to easily distinguish them from individual markers. If you click on such marker on the map, in the popup you will see a link “Group #X – Y object(s)”, which allows you to easily view the location of all other markers in that group.

My personal favourite feature — overlay layers:

  • Pathing layer allows you to view actual traversable paths, including paths to hidden chests and areas.
  • Area names layer show the names of map areas. I admit that name label positioning might be better here — I’m using centroid now cause it’s the easiest way, but should switch to something like polylabel; this might be improved in the future.
  • Level limits layer shows monster levels in the areas — the naming is as follows “min level - max level (+offset)” listed for each difficulty. I’ll quote the modding guide here to explain what that means:
    > The Level Limit Layer controls what level monsters can spawn in the area. The Minimum level and Maximum level are used whenever the player’s level falls outside of that range, otherwise the player’s level is used. The Offset is added to the player’s level so that monsters always end up a few levels above the player (unless the player’s level is above Maximum level). The Offset is only used in challenge areas.

The map is integrated with other tools, e.g. the popup for enemy markers has links to relevant monster page in the database, the popup for devotion shrines has links to items in the database, monster database now includes a link to view spawn locations on the map — it’s show in the “Spawn location(s)” tab and in item database in MI cards there’s now a [Map] links next to the names of some of the monsters that drop the item to show easily view their locations on the map.

In marker popups you can see permalinks to markers and groups. There’s no problem with group permalinks as well as with permalinks to the map from the tools integrated with it, because they have stable ids.
But I want to emphasize that unlike item/monster databases where all record ids are stable, I still didn’t figure out a way to generate reliable stable ids for markers and map areas due to the fact that most of this stuff in the game map doesn’t have fixed internal id at all. So a monster spawn point with coordinates (x,y) and the same point moved to coordinates (x+1, y) in some future patch are internally completely different spawn points since they don’t have a fixed identifier and therefore will result in different ids assigned to them during map build process, which will make permalinks in such case kinda pointless. This really saddens me, but Zantai told me that object spawn points are moved rarely, so hopefully this won’t cause much trouble for me. In any case map builder has a thorough logging in place for this case, so it will be possible to detect any issues and possibly resolve them in future.

Compared to maphack there’s some stuff that’s not present in grimtools map:

  • There’s no info on quests in the map yet, it’s not that easy to properly extract such data and determine quest flow etc., plus tbh I didn’t really look much into this. But this will be added at some point.
  • There’s no explicit markers for hidden areas, but this is irrelevant since you can view actual paths to hidden chests and areas if you turn on Pathing layer.
  • There’s no map editing and “custom pins” thingy, so you can’t create your own markers. I’m not really sure what’s the point of this, but maybe some people find it handy and use it in maphack. I doubt I’ll add such feature in future, unless someone explains to me the importance of it. Although perhaps I might add a feature to create own map layers and put existing markers on it, but that’s just a thought now.
  • There are no ads :stuck_out_tongue:

Currently the map is available only in English, but localization support is almost finished and will be provided soon.
Also there’s no offline/desktop version yet, but it will be available soon. This and translations are on the top of my todo list.


Feel free to post any questions, suggestions and bug reports.

If you are interested in translating the tool, please refer to this thread.

14 Likes

This is great, always wanted something like this. Thanks!

It’s finally done!

I cant find words…

fantastic work…

thx so much…

Edit:

Is it possible to increase the “Zoom In - Function” a bit, so that you can better distinguish between symbols superimposed in Devils Crossing (for example)?

Is it possible to add a function to select/deselect all markers at the same time, so that you can call individual ones?

Is it possible as with Maphack, entrances that include shrines, especially to mark?

1 Like

Awesome job!

Great work, just wonderfull!!!

WOW!

Thanks a lot for your work! :smiley:

And it is a good idea, that you make a own thread for the translations.

I advertised your latest tool on a stream, but the streamer was missing the locations for static lore notes, for which she has been using map-hack. Other than that you have outdone yourself once again.

amazing, I have seen that it was in the works for a while now, stoked to try it!

edit: awesome job, so useful

I wasn’t expecting layer parsing! You’re too awesome :smiley:

It’s maybe not super important, but would you be willing to throw in the riftgate-disable layer as well?

The only thing I don’t like in that map is nemesis indicators. They’re all similar… err… the same… and force you to hover on that in order to know what nemesis is that (examples, Kuba, Reaper). I’d like if you’d be able to choose which nemesis monster you want to see on the map, or see only the ones you inserted in the “search” function.

Overall it’s very good and helpful.

Couple suggestions:

  1. Add ability to add custom markers and path planner - just a list of markers, connected on map (no need for pathfinding, just to visualize route, without manually drawing). Maybe a way to share markers/path via link, like we can share builds.
  2. World map needs more than 100% zoom, at least as an option. A lot of areas have stuff placed too dense for 100% zoom level. Yes, it’d be a bit blurry, not an issue imo, compared to usability improvement.
    edit - few more:
  3. Markers for ugdenbloom stumps would be helpful too
  4. Option to filter markers by search (e.g. searching for “reaper of the lost” to hide all other markers)
  5. Make “area names” and “level limit” flags mutually exclusive, they overlap on the map anyway
  6. Ability to toggle markers (saved locally), for example to hide already opened exalted stashes.

Lore notes are on my todo list.

I don’t think there’s a need for it, it’s only in dungeons anyways and it’s a common knowledge.

Yeah, I see your point. For now I’ll just add an indicator next to the icon to distinguish them. In future there might be a better solution though.

  1. Maybe in a future, this is not a priority though.
  2. I don’t thinks it needs more zoom, but I might consider adding it. Also I don’t see much usability improvement because the only markers that overlap at max zoom level now are npcs in towns, but you can disable them already.
  3. Maybe, but is there really a need for it? AG runs nets ~10-15 ugdenblooms, do people run stumps like they did before AG was released?
  4. This is a good idea, added to my todo list.
  5. Nah, that’s just limiting something that ain’t broken. In dungeons they overlap, that’s for sure, but in main Cairn map they don’t.
  6. I’m thinking about checklist for shrines/oneshot chests, but still trying to decide whether it should be a separate tool or a feature inside the map itself, I’m leaning towards the former.

Nemesis markers now have a small colored indicator in the top right corner to distinguish them from each other. I think for now this will suffice.

  1. Just felt hard to read sometimes at max zoom and I got used to in-game zoom. When I tried it I would just constantly try to zoom-in even though I know it’s not possible.
  2. Only around my path. I agree it’s not as useful now.
  3. If there would be 2-way integration (can go from checklist to map and back from map to checklist) - then it works too.

Aren’t there some Valdaraan spawns in the Conflagration? Sure I’ve seen it there in the past, map says no though and now I’m confused.

Similarly, the second of the three oligarchs in the undercity isn’t marked with a red dot, while the first and third are.

Anyway, that’s small stuff, this map is pretty damn awesome.

There are no spawns for Valdaran there, maybe they were removed, idk.

Because he’s a hero-tier enemy, and map currently includes only boss tier enemies. In future, when support for quests is added, he’ll be on the map as he’s related to a quest. But just an fyi, random hero tier enemies will never be added since there are ~40k spawns for them, same goes for random champion tier mobs (~60k).

Excellent work Dammitt! Thanks for your hard work and dedication.

Update:

  • Added markers for lore notes (disabled by default)
  • Enabled localization support and added translations for German, Japanese and Spanish

As you may notice, transaltions include not only general UI as in other tools, but also prerendered text on the map itself (overview map, name layer and level limit layer). I was unable to render Japanese characters using the same method I use for all other languages, so they are rendered a bit differently, but at least I was able to read what I see compared to rather bland rendering in the game.
So kanji, as well as hanzi and hanja if there will be Chinese and Korean translations in future, will be rendered like that.

Regarding lore notes: there are 141 shown on the map out of 175 total, the ones not included are either random drops (~25) or tied to quests/scripts, and they will probably be included in future when I add support for quests. Although I admit that couple not random drops, e.g. from Rolderathis, were not included because some part of detection logic collides with random drops. But it’s still better than maphack that show only 121.

Great job.