[Tool] GD save file editor

I had no trouble using the editor, or following the documentation when I needed to. I do have prior programming experience though.

Thanks for the feedback! Regarding the command documentation, are you using the “help” command or the web version? Did you have trouble finding either one?

I’m suddenly not able to use your tool anymore.

I even tried creating a brand new char and still got the same error.

That’s weird… this looks like an error when the editor isn’t able to understand the save file format. Do you mind sending me a copy of your character you’re encountering this error in on?

Here, I just created a new char and got the same error.

Hi there,

Are you running the latest version, build 4203871? The character you sent me loads fine with that version.

The character file format was changed in GD 1.0.3.0. If you updated the game recently, please also update the editor so it can read/write the new format.

=)

Duh… So sorry! The reason why I didn’t think of that is because for some reason I thought the tool autoupdated!

It works now!

Finally poked around with this a bit. Very cool!

Is there any CLI/argument-passing that can be done with this? You could save me a lot of work if so. :smiley:

what are you trying to do ?

Want to add a UI for editing/viewing all character data in my modding suite, which I’m rebuilding from scratch.

Since you asked, GDStash comes close but there’s a lot of (sometimes useless) info it skips over.

Although, and I may have missed this, it doesn’t look like quest tokens are displayed in this tool (or GDStash). It’d be great to be able to edit those out-of-game for char-fixing/modding purposes.

not sure why you would add that to a modding suite, but curious about its next iteration

Since you asked, GDStash comes close but there’s a lot of (sometimes useless) info it skips over.

yes there is, which is why I skip it :wink: If there is something you think would be of interest, let me know

Although, and I may have missed this, it doesn’t look like quest tokens are displayed in this tool (or GDStash). It’d be great to be able to edit those out-of-game for char-fixing/modding purposes.

they are not in the char file but in the quest-file, someone is working on an editor for that

Odie,

Could I bother you to add a command line parameter, like a /i <filepath> so instead of having to select when you run the program, it’ll go right to that file?

I’m going to take a stab at making a web based editor and if I had that I can use it to target uploaded character files.

Howdy!

Sure, don’t mind adding some switches at all. What kind of stuff did you ave in mind? :slight_smile:

Sure can!

Will probably make the switch -f or maybe /f. They’re pretty typical switches for specifying input files. :slight_smile:

Will have and update for you before too long!

Incidentally, I’ve been working on a gdd read/write and qts reading. Note sure if there will be any useful features to come out of this though. Still at the experimental stage.

Howdy!

A new version is available! Update hit “update”!

This version brings the ability to specify the exact character file you want to load as a commandline parameter. If you start the editor like “gd-edit -h” or “gd-edit --help”, the editor will show you all the switches it understands.

Currently, the there is only one useful switch “-f” or “–file”.
Any of the following forms should be valid:


gd-edit -f <path to save file>
gd-edit -f "<long path to save file>"
gd-edit --file <path>
gd-edit --file "<long path to save file>"

As always, use the “update” command to get the latest! (Btw, do let me know if the “update” command isn’t working right!)

Hi Ceno and whiskeyfur!

I’m not sure what kind of tools you guys are working on. I just want to bring up a few points that you guys may or may not encounter along the way.

  1. No suitable output for tool consumption

Up to this point, the editor has ever only considered human beings as the consumption of its output. So, while it is possible to pipe a bunch of commands to it via stdin, it will be hard to figure out the result of the operations. That means if it works, it works. If it doesn’t, then having to parse a bunch of text really isn’t a reliable way to figure things out.

I guess it’s possible to put in some abstractions in there so it can spit back data in json. It’s uncertain how simple or difficult this might be. Lots of refactoring is needed, for sure.

  1. “Slow” start up time

The language the editor is written in is known to have slow start up time. Though I haven’t done any profiling myself, it’s known to take ~0.8 seconds just to bootstrap the runtime and get to main(). This may or may not be an issue for you. There is little I can do to speed this up anyway.

  1. Looong data load times

The editor decompresses and loads the entirety of database.arz into memory each time the editor is started. This takes somewhere around 2 seconds on my machine.

This is probably not something a user would notice in typical usage because the data is being loaded in a background thread. By the time the user has issued a command that needs the said data, it should already be loaded.

If you spit automated commands at the editor, it’ll still work, but you may notice the editor blocking/stalling if the data hasn’t been loaded yet.

Combining 2 + 3 listed here, this means repeatedly starting the editor for short edits will be extremely sllllloooowwww. It’d be better to just start the thing once and reuse it when possible.

  1. Slow commands

Some commands, like item generation are very slow. It’s combing the entire game db multiple times everytime you fire off that command. It’s usually bearable when sitting at the command prompt. It might seem excessively slow when used by other automated tools. There might be room for some speedups here and there.

Anyway, do let me know if you guys need something to help make things work with your tools!

For some reason, it doesn’t seem to be able to create Mythical items.

I tried the following command:

set inv/2/items “Mythical Stormheart”

And I got the following error:

Sorry, the item could not be constructed

The following command, however, works just fine:

set inv/2/items “Stormheart”

I’m using the latest version, 0.1.7-SNAPSHOT [build ebeed33].

‘Mythical’ is not part of the item name but a separate field (quality I believe), maybe that is the reason

Hi there!

It’s probably because your character doesn’t meet the level requirement of the item.

Try:


set inv/2/items "mythical stormheart" 100

The “100” in the command says to pretend your character is at level 100. x)