[Tool] Grim Dawn Item Assistant

Grim Dawn Item Assistant

How does it work?
Item Assistant is an inventory management tool.

When items are placed in the last tab of your transfer stash, IA will automatically loot the items and make them available inside the tool.

The items can then be retrieved again at any time, and will appear in the second to last tab at the smuggler.

Features:

  • Store an infinite amount of items
  • Easily access your items on any character
  • Easily filter items by stats, name, etc
  • Integrated cloud backups to keep your items safe [optional]
  • Supports translations (Want to make a translation?)

Download
The latest version can always be found at https://grimdawn.evilsoft.net

Installation

  1. Install Net Framework 4.7.2
  2. Run IA
  3. Go to the “Grim Dawn” tab and parse the game files (After first install, and every GD patch)
  4. Move an item into the last tab of your transfer stash (not private stash)
  5. The item should appear inside Item Assistant

Video guides:

Translations: (not yet supported for GD 1.2, workaround available)

  • English (Native)
  • Japanese
  • Chinese
  • Russian
  • Polish
  • Portuguese (needs to be manually installed)
  • Spanish (needs to be manually installed)

Item Assistant automatically detects language packs installed in the game, and can be loaded inside the language settings in Item Assistant.

Moving to a new PC:
To move your items to a new PC:

  • Go to settings
  • Open the “data” directory
  • Copy the file “userdata.db”

It is also possible to simply login to the online backups on the new PC, and IA will automatically sync your items.

Troubleshooting / help
IA has it’s own discord: Click here to join

Known Issues:

  • Some anti viruses, particularly avast, tend to block IA without telling the user.
  • Users with 4K monitors may need to disable DPI scaling for IA (Rightclick on shortcut and select ‘disable dpi scaling’)

URL: grimdawn.evilsoft.net/
(Source code available on Github)

29 Likes


interesting, how do you determine if the stash is open in game ?

I hook into and proxy the following functions:
void GAME::GameEngine::SetTransferOpen(bool)
class GAME::InventorySack & GAME::Player::GetPrivateStash(void)

That gets around the issue other tools run into with “reading a memory address” etc, since these functions are likely to stay consistent across many, if not all future patches.

If the game is started before IA, then IA has no way of knowing until the player opens & closes the stash.
If the game is not running when IA is launched, then you can deduce that the stash is closed.


typedef int (__thiscall *SetTransferOpenPtr)(void*, bool);
SetTransferOpenPtr OriginalSetTransferOpen;

void __fastcall SetTransferOpen(void* This, void* notUsed, bool isOpen) {
	OriginalSetTransferOpen(This, isOpen);
	/* Your code here, stash is OPEN if isOpen */
}


typedef int* (__thiscall *GetPrivateStashPtr)(void*);
GetPrivateStashPtr OriginalGetPrivateStash;
void* __fastcall GetPrivateStash(void* This, void* notUsed) {
	void* v = OriginalGetPrivateStash(This);
	/* Your code here, stash is OPEN */
	return v;
}

The first function will let you know when the Transfer stash is opened, and when transfer/private stash is closed.
The latter will let you know when the private stash is opened.

Since closing a private stash is always followed by SetTransferOpen(false), these two functions are all that’s needed.

Now, the player actively tradeskilling is also a possibility, as that accesses the stash, but I’ve not included them as I don’t provide any hotkeys that could allow the player to both transfer and tradeskill at the same time.

Does this mean stash pages 3 and 4 are locked for transfers ?

1 Like

While the program is active, anything in stash 4 will be auto loaded into the program’s “stash” once you exit the in game stash interface. Stash 3 should be kept clear to bring items in, as required.

Absolutely an amazing time saver to use this mod to clean house. I had 14 mules worth of hoarding, plus nearly a dozen characters all with scattered rares through legendaries. 1/2 hour later, I now have filterable database of “all the things”. If you hoard, and don’t have the time to tidy up all your mules, I highly reccomend this mod.

Slipperypete would it be possible to add in “elemental” as a filter for both damage and resistance? That stat is seen on the item summary, but currently I can’t seem to filter to it.

Same for the “Total Speed” item stat on gear.

Pet stats for a filter as well would be nice, would probably work best in it’s own section of a filter category.

Minor Bugs:
The filter for attack speed is just called “Speed”.
Item preview stats will write on top of each other if there are too many to fit in the box size you have given them.

Thanks,
Paige

1 Like

Ah the battle is heating up. 3 Stash Managers now in the running. I have yet to use one yet but I am now approaching the phase where I’m thinking about it.

This one does sound interesting.

Sent from my SCH-I605 using Tapatalk

Patch notes 1.0.5918.14330:

  • Listing items with cold/lightning/fire dmgwill now also list items with +elemental
  • Listing items with cold/lightning/fire resist will now also list items with +elemental resist
  • Listing items with +attack speed will now also list items with +totalspeed
  • Listing items with +run speed will now also list items with +totalspeed
  • Listing items with +cast speed will now also list items with +totalspeed
  • UI: Can now filter by elemental specifically (resist/dmg)
  • UI: “Speed” renamed to “Attack Speed” (filter only)
  • UI: Can now filter by +n to mastery skills (no class selection)
  • UI: Added some additional space to prevent skill text overlap

Is anyone having problems scrolling the left side panel using the mousewheel?
So far I’ve only one report of it, from a Windows 7 user, been unable to reproduce the issue.

It doesn’t seem to be finding items, is there a options file or something that I need to incertain my game and save paths so that it can find the files or something?

EDiT: Never mind sorry restarting my computer seems to have got it working
Seen you have the program sorting by stat type are you able to have it show stats of the items or are we just going to have to put it ingame to see the exact stats

It doesn’t seem to be finding items, is there a options file or something that I need to incertain my game and save paths so that it can find the files or something?

One thing I forgot to mention (I’ll get it fixed) is that it needs to find Grim Dawn on it’s first run.

In most cases it will find GD via the steam registry entries, but if those don’t exist, GD needs to be running.

Seen you have the program sorting by stat type are you able to have it show stats of the items or are we just going to have to put it ingame to see the exact stats

For now, you’ll have to place them in-game to see how much the item actually gives.

I may invest some time into analyzing Grim Dawn and figuring out how it assigns stats, but so far I haven’t gotten around to it, nor came across any existing resources which solves the problem.

I have the “basic stats” of the item, the ones you’d see when standing at the blacksmith. But as you know, the blacksmith may say +20% and the final result is +46%… so, yeah.

Haven’t noticed an issue with scrolling either side. Using Windows 10.

Ok no worries no biggie this program is already awesome and easy to use and my favourite of the 3 programs to use so thanks this awesome xD

Sent from my 0PJA10 using Tapatalk

The program opens, but there are 0 items found. I tried with the game open, closed, and the stash open or closed, but there are still 0 items found. Also, I noticed that you left out bleeding damage.

  1. Open grim dawn
  2. Open IA
  3. Place items in stash 4
  4. Close the bank
  5. Items now appear inside IA

I’ll look into bleeding.

Thanks for your reply. I went through those steps. Still nothing in IA. When I installed the program, I did not install .net; is that relevant to my problem?
Running Windows 10.

If you’re running Windows 10 you already have .net >= 4.5

The real question is, have any items disappeared from Tab 4 in your in-game inventory?

It will only remove items if you are in-game, and have just closed tab 4.
Can also try looking at the logs to see if there’s anything fishy: “%appdata%…\local\evilsoft\IAGD”

Do you use steam cloud to sync your save games?
May be a problem… What is the timestamp on your “transfer.gst” file, located under “my documents\my games\grim dawn”?
I have another user with the same problem, and his stash was last updated months ago.

Nothing has disappeared from the in-game stash.
The date on my “transfer.gst” file is 3/9/2016. I have been using steam cloud to sync my save games. I will disable it and see what happens.
After disabling Steam cloud sync, there are still no items appearing in IA when I go through the steps that you have outlined.

The contents of the log files are as follows:
2016-03-15 13:36:27,461 INFO [IAGrim.Program]: Starting IA:GD…
2016-03-15 13:36:27,468 INFO [IAGrim.Program]: Calling run…
2016-03-15 13:36:28,639 INFO [IAGrim.Listener.RegisterWindow]: Created window with hwnd 2883980
2016-03-15 13:36:29,296 INFO [IAGrim.Utilities.ExceptionReporter]: Sent anonymous usage statistics to developer.
2016-03-15 13:36:29,858 INFO [IAGrim.Listener.GDInjector]: Injected dll into process 2576
2016-03-15 13:36:29,860 INFO [IAGrim.Listener.InjectionVerifier]: Running Listdlls…
2016-03-15 13:36:29,977 INFO [IAGrim.Listener.GDInjector]: InjectionVerifier reports injection succeeded.

2016-03-15 13:22:55,499 INFO [IAGrim.Program]: Starting IA:GD…
2016-03-15 13:22:55,505 INFO [IAGrim.Program]: Calling run…
2016-03-15 13:22:56,689 INFO [IAGrim.Listener.RegisterWindow]: Created window with hwnd 787380
2016-03-15 13:22:57,302 INFO [IAGrim.Utilities.ExceptionReporter]: Sent anonymous usage statistics to developer.
2016-03-15 13:22:57,907 INFO [IAGrim.Listener.GDInjector]: Injected dll into process 6568
2016-03-15 13:22:57,909 INFO [IAGrim.Listener.InjectionVerifier]: Running Listdlls…
2016-03-15 13:22:58,052 INFO [IAGrim.Listener.GDInjector]: InjectionVerifier reports injection succeeded.
2016-03-15 13:28:10,285 INFO [IAGrim.Listener.GDInjector]: Injected dll into process 492
2016-03-15 13:28:10,285 INFO [IAGrim.Listener.InjectionVerifier]: Running Listdlls…
2016-03-15 13:28:10,438 INFO [IAGrim.Listener.GDInjector]: InjectionVerifier reports injection succeeded.

2016-03-15 13:16:09,056 INFO [IAGrim.Program]: Starting IA:GD…
2016-03-15 13:16:09,072 INFO [IAGrim.Program]: Calling run…
2016-03-15 13:16:09,369 INFO [IAGrim.GrimDawnDetector]: Grim Dawn install location located using App Id
2016-03-15 13:16:10,494 INFO [IAGrim.Arz.ArzParser]: Loaded 73639 strings from Grim Dawn.
2016-03-15 13:16:10,494 INFO [IAGrim.Arz.ArzParser]: Attempting to parse items from Grim Dawn
2016-03-15 13:16:12,119 INFO [IAGrim.Arz.ArzParser]: Loaded 9704 items from Grim Dawn.
2016-03-15 13:16:33,841 INFO [IAGrim.Database.DatabaseItemDao]: Stored 9704 items to cache.
2016-03-15 13:16:33,934 INFO [IAGrim.Listener.RegisterWindow]: Created window with hwnd 983130
2016-03-15 13:16:34,669 INFO [IAGrim.Utilities.ExceptionReporter]: Sent anonymous usage statistics to developer.
2016-03-15 13:16:52,042 INFO [IAGrim.Listener.GDInjector]: Injected dll into process 6568
2016-03-15 13:16:52,044 INFO [IAGrim.Listener.InjectionVerifier]: Running Listdlls…
2016-03-15 13:16:52,219 INFO [IAGrim.Listener.GDInjector]: InjectionVerifier reports injection succeeded.

9704 items ? they can’t possibly be all in the shared stash, let alone its 4th page… Does this tool read chars as well ? Is that the GD database ?

Did the timestamp update though?

If the timestamp is not updating, then grim dawn is storing to steam cloud instead of local folder.