I have the extreme good fortune of just starting with this awesome game recently. I already have a whole bunch of characters with a whole bunch of items and it’s hard to keep it all straight.
I’ve looked at GDStash and GDDefiler but what I really would like is a read-only character/bag/stash viewer/searcher. I’m not looking to edit or change anything, just be able to query which of my characters has particular item(s) based on a filter.
I figured I’d roll my own, but a bit of Googling and forum searching doesn’t turn up any obvious documentation on the (cloud) save file format. Particularly in light of the recent 1.0.1.0 patch, even “Use the Source, Luke” isn’t going to be terribly straight forward, I would imagine, until the mod editors catch up.
Is there an obvious resource for the save file format that I’ve overlooked? Or an existing tool that will do the job?
Thanks very much for that. I had found that (and a couple of others in e.g. the GDStash Java source) but I wanted to check if there was anything more current.
Was there ever any information explicitly released by Crate or is the existing knowledge just the result of reversing?
I do not know how the C++ code was arrived at, I used that as the basis for my GD Stash code (ie ported it to Java) but the changes since I have from Crate and passed them on to some other people
I am curious where you found the GD Stash source code, because I have not released that… not that Java generally is hard to decompile, which I assume is what happened here… but whatever you found is not the actual source code (but probably pretty close)
Yes, I was going to just decompile the class files, but I haven’t actually gone to the trouble yet – I was hoping someone might already have reversed the current format and save me the trouble (Naturally if you object I won’t do so.) Of course, if it’s just a simple port of the C++ code, I’ll just start from there anyway.
The code for TQSacked was for a different purpose but if you want to see other code examples (mine never stored all the stuff in the file into unique data structures), google still found this https://gitorious.org/tqjiaco/tqsacked.git/?p=tqjiaco:tqsacked.git;a=blob;f=myApp.cpp;h=c596a2b128f32c46c346888ca2e6938a139680b3;hb=HEAD
You can basically parse the file by blocks and then just do a detailed parsing on the item blocks. But of course, this is not up to date for GD format. Just a dead code example for you to look at before you embark on your own parser.
hi,
could you share changes of “transfer.gst” format?
i’m discovered that “version” of block has been changed to “5”;
“mod” == “”;
but count of sacks == crazy huge number …
although I rewrote this code in c #, perhaps I made mistakes.
I don’t think the transfer file format changed, will have to check later, not at my PC now. The number of sacks definitely did not change, it should be between 1 and 4, so you must have an error somewhere
EDIT: I believe they added one byte at the end of the header to indicate whether you have the expansion. Check if that works.
I figured since I will use a DB to store the data anyway, I might as well store all relevant info there as well. I did not try which is faster, I assume it would be easy enough to get the image that way for item storage purposes.
For selecting items by stats, I believe it is definitely better to have the data in the DB however.