[Tool] GD Stash

There is no level 70 perdition, so I guess that level comes from the augment or component.
I would not rely on the stats, GDS shows the base stats, it does not replicate the GD RNG part that adjusts those base values.

The GD data import does not duplicate (or import) any items. GD Stash does not automatically import any items ever.

So I guess that leaves you adding the items at some point in time and forgetting about that, or somehow not realizing that you did.

Iā€™ve noticed that since the 1.1.8.0 update that masteries and devotion skills donā€™t seem to properly show up in the UI anymore.

@mamba
Thanks for the helpful software, I was hoping you could answer my questions:

  1. Is there a way to find all duplicates?
    I.e. all items for which there is at least 1 more copy of it in the DB (with options to include components/affixes in the calculation)?
    Iā€™ve found only this reply:

there is currently no good way to identify them in the tool

But that was 4 years ago, maybe things have changed since then?

  1. Is there a way to quickly move items from DB to stash?
    I have the need to move a lot of items, including ~100 rings, and I really do not want to click on the hundreds of those tiny squares in the stash UI.
    The manual says ā€œBy clicking on an empty area in the shared stash, the item is added to the stashā€, but maybe thereā€™s a faster way (like shift-clicking in the game)?

  2. In case the answer to either of those two questions is ā€œnoā€ - what are your current thoughts on releasing the source code for GDStash?
    Iā€™ve read your replies on this topic before:
    here

there are still a few things I want to finish first, and if I do open source it, I need to add a lot more documentation

here

possibly

and here

might be in the future

But that was years ago.
I really want those features, so I was willing to try adding them myself, but without the source code itā€™s impossible right now.

This is definitely not the case as neither changed in 1.1.8 and no one else is reporting this either.

Also not sure what you mean by ā€˜do not show up properlyā€™, maybe screenshots would help

  1. no, havenā€™t added anything as this is such a niche requirement that it took 4 years to show up again :wink:

  2. no, one item at a time

  3. I am not interested in making the source available and the code still should have much better / more documentation in this case

Sorry, it was because I had a mod selected that seem to be causing the issue.

Thatā€™s such a huge shameā€¦
Thanks for reply.

So true^^, didnā€™t see the Mankinds Vigil addon

I believe you, never seen this happen before in my years using GDS

That is not impossible but it still doesnā€™t explain why i have 3 items in db but it counts 5. Does an item in shared stash count or is it only items in the actual db?
And is it ā€œsafeā€ to manually delete any duplicate without losing the actual item?

A QoL request: Would it be possible to implement a way to separate SC and HC found/missing items in Colletion tab?

Edit: I think I figured it out, didnā€™t account for soulbound items. And somehow all my equipped items across all my chars has been added to the database, hence the duplicates.
Guess Iā€™ll just have to clean it out then :wink:

no, only what is stored in GD Stash is counted

yes

there already are two columns in the collection result for that

I mean when clicking either buttons. If I click ā€œmissingā€ the listed items doesnā€™t show as HC or SC

Edit: Disregard that, iā€™m just stupidā€¦ or blind!
Thanks for the feedback tho.

only here to say Thank You for the tool :slight_smile: (I hate mules)

I have a problem. I canā€™t import database from Grim Dawn Reborn mod. This error shows up:

Invalid number of operands available for ā€˜ā€™ operator
java.lang.IllegalArgumentException: Invalid number of operands available for '
ā€™ operator
at net.objecthunter.exp4j.Expression.evaluate(Expression.java:197)
at org.gdstash.db.DBPet.getPetCharLevel(DBPet.java:91)
at org.gdstash.db.DBPet.getPetLevelByPlayerLevel(DBPet.java:79)
at org.gdstash.db.DBPet.setPlayerLevel(DBPet.java:139)
at org.gdstash.db.DBPet.wrap(DBPet.java:353)
at org.gdstash.db.DBPet.getDB(DBPet.java:297)
at org.gdstash.db.DBPet.get(DBPet.java:279)
at org.gdstash.db.DBSkillSpawn.wrap(DBSkillSpawn.java:150)
at org.gdstash.db.DBSkillSpawn.getBySkillID(DBSkillSpawn.java:120)
at org.gdstash.db.DBSkill.wrap(DBSkill.java:1015)
at org.gdstash.db.DBSkill.getDB(DBSkill.java:896)
at org.gdstash.db.DBSkill.get(DBSkill.java:773)
at org.gdstash.db.DBSkill.getAll(DBSkill.java:801)
at org.gdstash.db.DBSkill.setMasteryID(DBSkill.java:1166)
at org.gdstash.db.DBSkill.updateDB(DBSkill.java:1152)
at org.gdstash.db.GDDBData.updateDB(GDDBData.java:555)
at org.gdstash.ui.GDConfigPane$DBImportWorker.doInBackground(GDConfigPane.java:265)
at org.gdstash.ui.GDConfigPane$DBImportWorker.doInBackground(GDConfigPane.java:78)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Suppressed: java.sql.SQLException: Cannot close a connection while a transaction is still active.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.checkForTransactionInProgress(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.close(Unknown Source)
at org.gdstash.db.DBPet.getDB(DBPet.java:310)
ā€¦ 18 more
Caused by: ERROR 25001: Cannot close a connection while a transaction is still active.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
ā€¦ 26 more
Suppressed: java.sql.SQLException: Cannot close a connection while a transaction is still active.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.checkForTransactionInProgress(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.close(Unknown Source)
at org.gdstash.db.DBSkillSpawn.getBySkillID(DBSkillSpawn.java:127)
ā€¦ 15 more
Caused by: ERROR 25001: Cannot close a connection while a transaction is still active.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
ā€¦ 23 more
Suppressed: java.sql.SQLException: Cannot close a connection while a transaction is still active.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.checkForTransactionInProgress(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.close(Unknown Source)
at org.gdstash.db.DBSkill.getDB(DBSkill.java:909)
ā€¦ 13 more
Caused by: ERROR 25001: Cannot close a connection while a transaction is still active.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
ā€¦ 21 more

In version 1.5.2 of this tool I donā€™t had this problem.

that is because version 1.5.2 did not care about pets and their formulas :wink:

Sounds like an error in one of the formulas in that mod, will see if I can find more

EDIT: records/skills/playerclass03/pets/expl_01.dbr and so forth (i.e. 02, 03 etc.) have the very weird / wrong formula charLevel,*,

That should be fixed in the modā€¦

Allright, I fixed this myself and it works! Database was imported! Thanks for pointing out what was the problem.

Edit: I wasnā€™t paying careful enough attention, there was no issue in the first place.

So I donā€™t believe Iā€™m doing something wrong but I recently started feeling as if some items Iā€™ve collected in the past did not appear in the tool when looking for them. I used to dismiss it as bad memory and move on but today I collected some items and wanted to see my collection tab update with all the new items Iā€™ve found. Most of them registered there correctly but there were a couple of items I was absolutely certain I gathered but for some reason did not appear. I tried searching for them in the stash transfer tab but they were not there either.
For proof this time I didnā€™t press the save stash button yet and opened the shared stash in-game to verify Iā€™m not hallucinating, and truly those items were indeed in my stash when I transferred them to the database. Other items from the same stash tab have appeared to move seamlessly so Iā€™m not sure how to start troubleshooting this issue.
(I have re-imported the database post update)

This is all reversible still, meaning I can reload the shared stash to show these items existed if this is helpful at all for debugging, in case you would deem it necessary. I will be doing some other things in the meantime and let this all hang for a while in the event you might consider this helpful.
So far this hasnā€™t been a major inconvenience but some items seem to be disappearing randomly and I would rather be able to rectify this :slight_smile:
Any help would be greatly appreciated :smiley:

Can anyone help with this issue? on 1.5.2 was not missing now on 1.6.0a is missing.

All items you store in the tool are stored, if there were an error (which in itself is very unlikely as that would require a database / HD failure) you should get an error message.

It would be interesting to know which items did not get stored and whether you imported the GD data after the 1.1.8 update.
Right now the only thing I can think of is that your stash contains items the tool is unaware of (because the belong to a mod and you use the vanilla db, because they are 1.1.8 items and you did not update the GD data) in which case those items are not shown in GD Stash but also do not get deleted when you change the stash and then save it. (Internally these are kept in a separate list and added to the stash again when you save it.)

So after further inspection (and after actually finishing to write my follow up reply :dizzy_face:) it turns out these are not the mythical versions of the items, which I was expecting for some reason.
I appreciate the swift response and I would like to apologize for the misinformation :sweat:
I will pay more careful attention next time I encounter an issue, to sanity check that I am not misleading anyone again.
Thanks a lot for your continued effort in supporting the tool when issues arise, I really appreciate that!

Hi, so I have a custom mod that (among other things) modifies the ā€œskillMaxLevelā€ param for all classes from 50 to 60, as well as increasing skill points per level. This is causing some kind of exception in 1.60 when loading characters. The exception occurs when clicking on the ā€œChar Editorā€ tab, opening the character select dropdown, and then left-clicking on a high-level character with (maybe?) too many stat points.

Is there some verbose log output that can be enabled to show what the actual exception is?

If you get an exception, that should already be the verbose output. Copy & paste the text here.