Mod merger

Hi everyone, i started to play around titan quest immortal throne today and i found out they had a mod merger program that seems to work pretty find. Would it be possible to have such a program on Grim Dawn? To be honest i tried to read the modding tutorial for grim dawn and i know i wont be able to mod anything, that is why i dont know if its possible to merge mod using a program.

Possible? Almost certainly, but someone would need to put in the time to make it.

Im going to make a splitter for my mod collection, right now its mostly just DGA, but with the next update comes Runes and if someone only wants those he needs a way to split it without knowing which files are required for it… some are split by folders, others have to use the main paths to override the default dbr - anyways I was thinking of expanding it at some point to merge other mods together.

I know people would LOVE this, so I might get to it after the runes release. actually shouldnt even take that much time to do.

Fully automatic ? That would take a lot of effort, if it is doable at all. You could easily get 90% of the effort though and leave the rest to the modder…

  • compare files of mod 1 to vanilla files to identify changes
  • compare files of mod 2 to vanilla files to identify changes
  • use vanilla files as the base and add any change from mod 1 and mod 2 for which there is no overlap between the mods (ie changes in same file and for the same field)
  • report overlaps so the modder can address them manually

It existed for tq, mods are pretty much the same in GD.

Im playing your mod on TQ:IT right now … :stuck_out_tongue:

I dont know if we have to go crazy with it, its probably going to be enough to have an order (like TL2) and copy one over the other and just prevent some of the core files like gameengine.dbr from being moved.
make a small feature where you can set devotion cap etc. which is what most mods do with their gameengine.dbr

the only big thing could be with masteries, where you could pick a slot for the mastery and the tool is going to take care of the naming and moving.

we dont have a CLI to compile it, so some basic knowledge is required…

Why do you think Davood keeps asking for one? :stuck_out_tongue:

well, the amount of knowledge I could take it down to is:
pick the mod
press F7

wait until it stops doing something and close the asset manager


set up is just default folders, cause who cares :smiley: and templates can be uploaded with the tool and even the asset manager can get started by the tool, so there isnt much left for the user to do.

but but but what about the CLI

Don’t forget the mastery cap increase!

that would be better :smiley: but Im trying to work with what I got

I had a program working for this a long time ago. I restarted working on this again today, but mainly realized I hate visual studio and microsoft c++.

I abandoned trying to port to VSC++ and will clean up my Qt code and push to github as soon as I can. If it is not fully functional, it will be close. But I really hope somebody else takes this on, or a collaborative effort can be formed, iirc, my code can compile some subset of dbrs, but chokes on something…and I never figured out what it was.

On topic, the code I dug up today actually has the skeleton of merging functionality in it. You have to designate which mod takes precedence and can get a tab-del text file of dbr-fieldName-fieldValueA-fieldValueB lines to edit or curate for fields that are modded by both modA and modB.

But this was merging done at the arz level, not dbrs…if you just do it with the text files, it is pretty trivial (in R at least).

We could use this thread to see if anyone has time and skill to get this code going, cause I am really hesitant to be “responsible” for this…it is quite a critical piece of code and could introduce any number of hard to track down issues.

well we can easily do some tests once its made… like unpacking an arz and comparing against archivetool unpack with some text comparison tool like beyond compare or notepad++ plugins

i have NO clue what are arz, dbrs VSC++ but ill do my best to help on what i understand … it sounds good to me :D:D

A lot of the tools I’ve made for autogenerating pieces of Cornucopia could probably be repurposed and combined to enable mod mergers, with a little extra logic.

I also have that automatic Asset Manager tool I made…haven’t made a thread for it because releasing system macros isn’t something I think I should advertise especially much…anyway, this tool could certainly be redone for automerging and could be expanded upon to work on more system settings.

This is a project I’ve been interested in undertaking but there are other code-related GD projects I’ve got on my plate first (like making a generic ‘modcalc’ for mastery mods that pulls from the mod files).

If anyone wants to bounce ideas off me for the logic involved for such a project, I’d be glad to engage in such conversations.

Edit: FYI mod mergers bring up a problematic concept when it comes to closed-source mods. Despite being a heavy advocate for open sourced material myself, I won’t work on or help a project that pulls from .arz/.arc files instead of source files. We - mod developers - really should be more explicit when it comes to identifying our releases as open or closed source.

i support that, but instead of a mod merger, maybe a tool that allow people to launch more than one Mod at once? so we can mix 2 or more of them, like Torchlight 2 did?

Not feasible without editing the core of the game itself significantly, and conflicts would be widespread and almost certainly result in a crash-on-load without any discernable cause.

unfortunately the modding API doesn’t lend itself well to crypto modding. (ala starcraft 1 / wc2/3)

for now the community is small (will it remain small?) and we have been playing more or less nice with each other.

but if crate has some long term innovation planned for grim dawn (dedicated servers ala NWN) then you might see an explosion and the zerg copy paste horde will arrive. (different than the borg . they dont ask first ;o)

i have some ideas on doing some trickery with the mods to make them only work in certain conditions but i am not sure it will work

how much “.lua” do we have access to? can we add some libraries to call code / functions from elsewhere? IE i want to add a mini web crawler via lua to go request/send information from/to a server. can i do it?

would also open up some interesting possibilities like an actual shared player record / leaderboard (chat system!?!?)

ive done something similar with .pl for another game. f* perl by the way. very slow garbage . anyways i wrote a little plugin to connect to a bunch of custom (local) DB tables I used to extend the features of the game.

This is kinda off topic, but IMO, if I want to merge Grimmest and the Demon Hunter to play them together, that is fine, even if one or both are closed source. I just cannot release that merge anywhere. If people see closed source mods being re-released in compilations, they should surely notify the mod creator.