There's a game studio in Sweden which makes games that are really modder-friendly. There's pleasantly formatted text files with their own scripts as the source for much of the game's mechanics. Mods, which aim to alter those mechanics or add new ones, can either add new files with more script, or override existing ones (which entails making a local copy with the desired changes).

However, every now and the developers release a patch for the game, which may update some or all of those original ("vanilla") files. If I have overridden some of those files for my mod, then my local copies will not receive those updates. I not only have to merge in the changes manually: I have to track down each of the files that my mod overrides to see if any of those got patched, first. Which is a bit of a hassle if the mod is big enough.

I'm thinking of a tool that can do all of these things:

  • When it runs, see if any of the files in the vanilla directory tree got updated since the last time it checked; and if those updated files also exist in the mod: so in a different root directory, but in the same subfolder with the same name.

    • I could make this step simpler by just keeping a plain list of the files I changed, and have it reference that list instead of scan through my mod directory tree every time.
  • if there are any such files that changed, then try to rebase my changes on the new version of vanilla (which should often work because my changes will tend to be subtle)

  • if it fails in that, notify me somehow.

  • And preferably, it should run automatically, e.g. daily.

I was going to implement it myself, but then I considered that this was just like interacting with a version control system. If this were Git, then vanilla would be the master, my mod a branch, and this tool would just continuously try to pull and merge in new changes from the master, something that humans do all the time. So this must have been thought of before, I figured.

The tool should preferably be free and light-weight. My operating system is Windows 10.

  • Why not just use Git or similar version control tools?
    – Alejandro
    Commented Jul 1, 2020 at 13:02
  • @Alejandro I don't have access to the game developer's repository; from my perspective, I just receive new files from Steam. I suppose one possible solution would be setting up a local repo: with one branch for the vanilla files that automatically force-pushes to master when changes occur, and another branch for my mod that automatically pulls/merges whenever that happens. Still, a lot of work for a procedure I intend to execute every day (though patches only occur every few weeks, I don't always notice in time), so if there's tools to automate that set of steps, I would also be quite happy.
    – KeizerHarm
    Commented Jul 1, 2020 at 13:41
  • 1
    Git command line client is easy enough to script, so everything can be automated. The only thing I'm in doubt is about downloading the original game from Steam, a thing I don't have any experience in. But for the rest, is just keeping a local repository and update the working copy (here the local game installation) with a few commands.
    – Alejandro
    Commented Jul 1, 2020 at 13:56
  • @Alejandro Hmm... I would have to look into that: thanks for the advice! The one other thing is that I don't want my mod to be a complete copy of the game directory; it would ideally overwrite as few files as possible. I'm positive that you can pull/merge select files from a branch with Git; but knowing the files would probably require more scripting. I now have a good direction in any case.
    – KeizerHarm
    Commented Jul 1, 2020 at 14:03


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.