[Tool] Grim Dawn Item Assistant

Grim Dawn Item Assistant

GD Item Assistant is a tool to help you manage your inventory.
It will automatically loot any items you place in Stash 4 (stash 5 for expansion) of your shared bank, and make them available for search inside the tool.
(Items will be looted once you leave the stash area)

When you need an item retrieved, you simply right-click it and select “Transfer to stash”, and it will magically appear in your shared Stash 3 tab.

Features:

  • Store an infinite amount of items
  • Easily access your items on any character
  • Easily find items by the desired stats
  • Easily find items by name
  • The tool backs up your stash file before every single change, and stores the most recent 100 backups.
  • Automatically detects whetever the in-game stash is open.
  • Automatic updates [optional]
  • Backup database automatically to Onedrive/GDrive/Dropbox
  • Supports GD language packs (Want to make a translation?)

Important:
If you want to move your items to another computer, click “Settings”, “View Logs”, and copy the “Data” directory.
Or simply use the built-in backup feature, and select a custom folder.

Available in:

  • English (Native)
  • Japanese
  • Portuguese - Abandoned / Abondonado
  • Russian
  • Polish
    Simply load the language pack inside Grim Dawn and it should appear within the language settings inside Item Assistant.

Video guide:

[b]For Discord / Help - Click here[/b]

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’)

FAQ:
How do I export items to CSV? Open the database in https://sqlitebrowser.org
There’s a 99.9% chance someone has asked the question before, and while searching a 100+ page forum thread is quite tedious, I simply am not active enough on the forum to answer questions anymore. The community may help, but for common issues, I’ve posted the instructions over multiple times. Cheers! :slight_smile:

Installing
1) Disable cloud saving for Grim Dawn in Steam.
2) Disable cloud saving for Grim Dawn inside GD itself (checkbox under settings)
3) Install Net Framework 4.5.2
4) Run IA

URL: http://grimdawn.dreamcrash.org/ia/
(Source code available on Github)

Attachment: userdata.zip
Attachment: gd can’t move.jpg
Attachment: GDIA cannot deposit item.jpg
Attachment: GDIA_item_display.jpg
Attachment: gdia_oldstyle.jpg
Attachment: GDIA VS2013.jpg
Attachment: items.html.txt
Attachment: gdia_oldstyle.jpg
Attachment: gdia_oldstyle_database.jpg
Attachment: gdia_oldstyle_settings.jpg
Attachment: gdia_oldstyle_storage.jpg
Attachment: log.zip
Attachment: log.txt
Attachment: gdia_stbdmo_items.jpg
Attachment: Pet bonuses missing.jpg
Attachment: Grim Dawn Item Assist Bug.jpg
Attachment: GDIA .net error.jpg
Attachment: log.txt
Attachment: itemi.png
Attachment: log.txt
Attachment: IA.jpg
Attachment: IA2JPG.jpg
Attachment: Item Asisistant.jpg
Attachment: GDItem Assistant Error.png
Attachment: gdia1.jpg
Attachment: Screenshot (6).png
Attachment: GDIA Error.JPG
Attachment: buggeditem.png
Attachment: Screenshot (7).png
Attachment: Screenshot (8).png
Attachment: GDIA missing items.jpg
Attachment: GDIA settings.jpg
Attachment: log.txt
Attachment: exception error.txt
Attachment: log.txt
Attachment: GDIA SQL exception.jpg
Attachment: GDIA1.jpg
Attachment: GDIA2.jpg
Attachment: Logs.zip
Attachment: log.zip
Attachment: IA to merge.zip
Attachment: adlit Logs.zip
Attachment: GDIA errors.jpg
Attachment: IAGD.zip
Attachment: userdata.zip
Attachment: adlit.zip
Attachment: GDIA backup.jpg
Attachment: GDIA mod addition.jpg
Attachment: IA error.jpg
Attachment: log.txt
Attachment: IA error.jpg
Attachment: log.txt
Attachment: log.txt
Attachment: CCJ_IA_Effigy.jpg
Attachment: CCJ_IA_GrantedSkills1.jpg
Attachment: CCJ_IA_NoGrantedskills.jpg
Attachment: CCJ_IA_bug.jpg
Attachment: CCH_IAHeal.jpg
Attachment: GDIA_01.jpg
Attachment: GDIA_02.jpg
Attachment: tags_ia.txt
Attachment: tagdup_00.jpg
Attachment: GDIA_01.jpg
Attachment: Classes_00.jpg
Attachment: tags_ia.txt
Attachment: backup01.jpg
Attachment: tags_ia.txt
Attachment: rare_compo_01.jpg
Attachment: Craft_02.jpg
Attachment: crafting.jpg
Attachment: GDIA databases.jpg
Attachment: Jaxx.jpg
Attachment: IA pic.jpg
Attachment: IA pic2.JPG
Attachment: tags_ia.txt
Attachment: Chinese 01.jpg
Attachment: gdia.gif
Attachment: GDIA_latest 1.jpg
Attachment: GDIA_latest 2.jpg
Attachment: changesize.jpg
Attachment: problem 01.jpg
Attachment: problem 02.jpg
Attachment: problem 03.jpg
Attachment: renew_01.jpg
Attachment: augment eng 01.jpg
Attachment: Language.jpg
Attachment: 1061_community_japanese_02.zip
Attachment: purchase_location.jpg
Attachment: 00 Initially normal.jpg
Attachment: 01 Strange display.jpg
Attachment: IA.jpg
Attachment: screenshot00.jpg
Attachment: Screenshot_1.jpg
Attachment: log.txt
Attachment: transfer.68-pyro.zip
Attachment: log.txt
Attachment: Unbenannt.jpg
Attachment: log.zip
Attachment: GIA_error.txt
Attachment: 2018_12_14.zip
Attachment: 2018-12-17 (2).png
Attachment: GDIA-XP.jpg
Attachment: tags_ia.txt
Attachment: log.txt
Attachment: GDIA.jpg
Attachment: error.PNG

3 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 ?

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.