How to check item database (+ what have each character). Like i were a 5yo

Well. This may sound weird, but I want to do 2 separate things:

-check the whole item database (and formulas).
-check what i’ve in-game

I’m clueless how to start, but being ultra-specific:
-How can i check the player.gdc to see what a character has (equiped and in his personal tabs)?
-How can I check the transfer stash and formulas? It’s enough with formulas.gst and transfer.gst?
-Which is the “item database” file? or files? how i open it?

But… what’s the point of this?

The thing is…
I’m catching up on a programming language i had used years ago and I want to do a project that will be useful to me. So if I could borrow the stuff i said above from the game files, my idea is create cross-character filter to check what items tou have, who have them and what you miss.

A to-do list of items basically.

PD: GDStash/item assistant can do this, yes, but my target is being as specific as I can as I’m a stubborn purist who, having used them, doesn’t feel comfortable with.

PD2: if this turns to be a functional tool, of course i’ll post it in the forum

You’d have to consult people that already decrypt / decompress / parse these files (authors of GDStash, Item Assistant, Grim Tools, Grim League, MultiStash, GD Save Editor etc), it’s not a simple, accessible, well-known thing like modding I think. Some of them might have their code on GitHub or be willing to share.

However I remember someone posting their program (in C iirc) on the forum that parsed player.gdc, You should be able to find it although it’s probably outdated by now. You can try ask on GD Discord too, maybe there’s sth going on there.

Yes although the same thing as I mentioned before applies.

Have you learnt modding / unpacking game files with AssetManager? If you do that you will easily get all the files. There’s no single file but many of them, after unpacking at least.

1 Like

A lot of this stuff is just reading headers and offsets in order to correctly read data. I couldn’t find any documentation about the file formats and ended up looking at other people’s code to figure it out. You might be interested in gdlc which I wrote to look up which character has what items. It’s quick and dirty but has many of the things you need in <1.5k lines of Rust.

It’s been a while since I wrote this, but IIRC:
The basic idea is that you need to decrypt player.gdc to get the contents of their inventory. This gives you a bunch of ID’s that you can look up in the game data files. These are then matched with the localization strings in order to get the actual names of things. The Arc/Arz files are just an ancient format that use LZ4-compression under the hood. The game comes with a tool to unpack them (ArchiveTool.exe, I think) although it didn’t work for me over Wine.

2 Likes

Thanks guys!

I think i’ve a starting point for character.gdc, probably for formulas.gst and transfer.gst too.

But i think i’ll have troubles getting the game’s whole item list, as asset manager is a .exe

Whathever. I adress that in the future. One thing at time and i’m still configuring my IDE XD

1 Like

Hello there!

I know i said i’d postpone the the stuff about .arc files but i changed my mind as it’d be a major problem not being able to manage them after having done other stuff.

I spent yesterday’s whole afternoon trying to make asset manager run on linux mint. Didn’t make it.

So I think I’ll dive here to try to understand how @dandels did it.
Do i know rust? No XD, but at least it looks achievable.
By now i managed to get (in Python) the whole Bytes from a 400+ MB file, so i’m optimist.

Lot of thanks for this :smiley:

1 Like