Working on grimdawn database *.arz editor

Tutorial - How to build ModdingTutorial without AssetManager:

  1. Download this arzedit.exe (latest is v0.2b5)
  2. Execute like this:
arzedit.exe build "d:\Games\Steam\SteamApps\common\Grim Dawn\mods\ModdingTutorial" -g "D:\Games\Steam\SteamApps\common\Grim Dawn"
  1. Enjoy
    For the rest - just use --help

Not completely foolproof, but that’s just beginning.
Edit: Cleaned up code, sources (and binaries) are available here:

second post might help.

my main interest would be a way to toggle a boolean variable in the sricpts.arc so users could toggle on off certain features. main issue is releasing multiple versions of mods sucks, a way to automate remixes would be very nice.

Seems I’ve started duplicating your work, I swear I did not know you were working on this :).
I had a look at this source (not your project), it seemed not too complicated to remake it into an editor.

Edit: The fun part seems to be parsing templates for value types. Not sure if I’m up to that. I might as well leave it at editing existing databases.

Duplicate away, arzBaller is abandoned. Good Luck

I’m about ready to let this into the wild because my testing right now is limited. I use main database and try to run the game with different values, just to see if it works.

Source code will be available when I’ll tidy it up (if that mess of spaggetti code can even be tidied). I think uploading this to gitlab or something similar.

I’m not sure if there’s even interest in this tool, but I’ll keep digging.

If you can do this

My main goal would be to make tool which can assemble database from loose files, same as AssetManager build function, just command line. This would allow to remove all limitations.

There’s a lot of interest in your tool.

I think I’ve done it, unpacked main game database and repacked it back together using just /records/ and /templates/ folders. Shoved it back to the game, and it runs, it even had a change I’ve put in to test it.

I’ll need bigger variety of databases and templates to test.
I’m not a modder, and I do not know how it’s done in GrimDawn, but this tool is for you. I’ll try to read up on all the info on these forums. But well, later.

Updated first post. Previous versions did not work with real life data. But it works this time, at least with modding tutorial. I don’t have enough mod sources to test thoroughly.

Few observations - some mods I’ve been packing use entry “chanceToEquipFeetyItem5” throughout, I suppose it should have been “chanceToEquipFeetItem5”.
Also used, sHandedSpecialAnim36 sHandedSpecialAnimSpeed36 sHandedSpecialAnimRef36 and similar, up to sHandedSpecialAnim40 and their variants.
Seems they have no entries in templates and are ignored by AssetManager.

I’ve packed Nydiamar mod from sources, without any changes.

My testing goes like this - build it using AssetManager and arzedit. Unpack both databases using ArchiveTool and compare them for any differences (I use Total Commander’s Synchronize Dirs option). There are no differences - both are bit perfect copies. That’s a good sign.
Also unpacked all resource files and checked them side by side - no differences.

Nydiamar has’nt got asset files for all resources, so you have to be careful when building into new folder, some files from sources will not be copied to resource folder and you’ll end up with incomplete resource arc files. You can copy resource folder beforehand, only files in assets will be built and overwritten, but everything will be packed.

Final test - copy built files to mods folder and try playing it for a while - everything seems to be working as expected.

Here is an example usage for you:

Grimarillion mod is not open source, but stasher is. Can you write a simple exe that uses your code and makes a version of Grimarillion with stasher mod included?

In fact, Grimarillion is irrelevant, it should be able to take any mod (or even vanilla) and inject the stasher mod. If we need to rename some paths to the entries in the arc files to make a single stasher.arc that can be just copied in without any resource merging, that might be possible as well, it has been awhile since I looked at stasher.

In my own projects, I have basically been working on interfacing the database in script and writing out text files that are essentially JSON format that I can edit for monster/pool/proxy characteristics and then more script that reads them back in and actually performs the modifications. It would be interesting to develop some kind of high-level scripting language that can be read by a program and then injected into an existing arz.

For example, the one line of GDScript:


To double XP gain.

Or this line here:

to remove monster scaling limits.

(examples typed from memory while at work so errors are probable)

In any case, glad to see you are still with it, if you want more examples of things to test, let me know.

For merging stasher - I don’t know how mod merging process is done, I’ll try to figure it out. At first I have to be able to do that by hand.

Scripting language - it would be nice. You’d just need to manipulate dbr files I suppose.

Another thing, I think it would be trivial to implement *.arc editing feature - as you mentioned. Modifying script files in script.arc. I’m thinking about regexp replace on files in an arc, so you can change some variables. Would that be sufficient? Or GUI with options is needed?

P.S. I’m having a little break from programming. It’s been two weeks non stop - trying to make this work.

i just tried your tool… i like the feeling it gives.

Is any of this still available?
arzedit just closes so fast I cannot even make a screenshot of the console text and the grimarz project no longer exists, link is dead.

Is there any way to edit the database.arz to insert edited dbr files without making a mod?

Run it from command line not by clicking it.

Yes, you can use ArchiveTool.exe (from command line) to unpack and pack .arz files (the program provided by Crate).
Also I think there are some other user tools on the forum. Maybe GUI (un)packing program as well IIRC.

In my opinion AssetManager is the best and easiest to use though. “Making a mod” is basically changing and packing files really.
If you meant that you don’t want to run your mod in-game in a modded game but normal campaign,
I like this method of running with your modified database.arz in Main Campaign (see installation): [MOD] Grim Dawn Lazy Parallel Universe | QoL hard-mod for