Grim Dawn Forums

Grim Dawn Forums (http://www.grimdawn.com/forums/index.php)
-   Utilities and Resources (http://www.grimdawn.com/forums/forumdisplay.php?f=32)
-   -   [Tool] [Modding] Mod Integrity Checker (http://www.grimdawn.com/forums/showthread.php?t=49400)

Ceno 01-01-2017 08:08 PM

[Tool] [Modding] Mod Integrity Checker
 
DISCONTINUED

Grim Dawn Mod Integrity Checker
Download (click here)

Designed to verify database-record and resource references in mods. If an invalid reference is used, this tool will report it.


Version Number: 1.2.1

System Requirements:
  • Latest version of the Java Runtime Environment installed.
  • 42KB disk space (+more for exporting results of integrity checks)
  • Windows...probably? Due to the nature in which filesystems change between Windows and Linux, the generation of config files and the exportation of results may make the program crash on -nux systems. Not tested.
  • Steam installation of Grim Dawn. I'm unsure of the file hierarchy of the GoG installation and how it relates to mods, and so it is not presently supported.

How to use:
You MUST have the game files of vanilla and of your mod extracted! The tool requires /database/records and /resources to be present in the directory of both vanilla and the mod (as applicable; if your mod uses no resources, you of course don't need the folder).
  • In the 'Config' tab, select 'Set Install Directy' and navigate to Grim Dawn's steam installation directory.
  • In the textbox at the bottom of the 'Config' tab, enter the name of the mod you intend to verify. This will be its folder name; for instance, grimarilliony or Cornucopia003.
  • Both of these fields will persist between sessions, using configuration files the tool makes in a folder in your default directory (C:\, for most users).
  • Then move to the 'Execution' tab, and select 'Verify Integrity'. When the process finishes, you may export the results with the 'Export' button, creating a .txt file in the aforementioned folder.

Source:
Github coming soon!

To-do List:
  • Clean up the UI, particularly that of the Config tab.
  • Enable functionality to search for missing/invalid tags.
  • Attempt to approximate error reporting. That is to say, if an error would result in a Tag Not Found in-game, or an Invalid Skill Profile, say so, rather than a generic 'Error'.
  • Change up the order of the tabs depending on whether a user has previously read the 'About' page or not, and whether configuration files presently exist (first-time use: About, Config, Execution; 'About' page read: Config, Execution, About; all config files present: Execution, Config, About). Will require another configuration file...given that that'll bring the total config files to three, I'll probably want to move the configuration path into some subdirectory as well.
  • ...open to suggestions about where to take this further.
  • ................................if Crate wants a version of this that checks the base game for errors, I could do that. I had that occurring as a bug but removed that functionality for this release (seeing as how it reported trucktons of errors). >.>

Kathanious 01-02-2017 01:58 AM

Wow this is amazeballs! This will save me a lot of heart ache and pain when merging mods.

powbam 01-02-2017 02:03 AM

Hrrrm... So..

Is this potentially a front runner toward implementing an Elder Scrolls style mod loader perhaps? I'm guessing a loader like that would need something like this integrated into it.

Sent from my SCH-I605 using Tapatalk

Ceno 01-02-2017 03:42 AM

Quote:

Originally Posted by powbam (Post 464674)
Hrrrm... So..

Is this potentially a front runner toward implementing an Elder Scrolls style mod loader perhaps? I'm guessing a loader like that would need something like this integrated into it.

While making what you're thinking of is on my long-term to-do list for making my own modding tools, I'm not entirely sold on whether the program here is relevant to that. This is primarily for finding bugs to make it easier to release a fully-functional mod.

For instance, thanks to this, I was able to find and fix seven errors in Cornucopia in about two minutes that days of testing wouldn't have found.

powbam 01-02-2017 03:49 AM

Quote:

Originally Posted by Ceno (Post 464684)
I'm not entirely sold on whether the program here is relevant to that.

Quote:

Originally Posted by Ceno (Post 464558)
Designed to verify database-record and resource references in mods. If an invalid reference is used, this tool will report it.

Well, I was thinking at least partially since it sounds kinda like it involves scanning the mods and checking "things". I know I'm no expert but it seems logical to me that mod loaders like that would be doing something very similar in an attempt to find conflicts in mods in relation to each other.

Actually, I'm certain that's one of their primary functions, to ensure everything plays nice. So it sounds to me that what you have could be at least partially applicable? Or even repurposed when you get to that future long-term goal.

That's what your description made me think anyway =p

Sent from my SCH-I605 using Tapatalk

Ceno 01-02-2017 08:05 AM

Updated to Version 1.1:

Highlights:

Tool now searches for and reports on Missing tags.
On first-time use, an 'OK' button is present on the 'About' tab. The tabs rearrange between sessions depending on your previous usage.


Configuration data is now in a separate directory from that of the exported information. As such, your old config files are obsolete and will not be recognized by the tools.

Ceno 01-22-2017 08:11 AM

Updated to Version 1.2:

Highlights:

Tool now includes an option to 'Prune Vanilla Errors'. Earlier versions of the tool would report an error in a file in a mod when that error was in fact originating from Crate's vanilla game content. Selecting this checkbox (selected by default) will prune occurrences of these sorts of errors from the final report. As to be expected, this pruning process requires more time to generate results. Smaller mods probably want to turn this off.


Exporting results no longer exports with a dinky little header copy/pasted from the output screen, and contains only the errors themselves. Much better for further automated parsing.

General cleanup of the tool, improving performance and memory usage in a few areas.

***

Edit: FYI I'll be going open-source with this on github pretty soon, if anyone's interested.

Ceno 01-22-2017 08:35 AM

Err um minor but significant bugfix released:

Fixed error reports being off by one line. The physical errors were always correct, the line number (if opened in, say, Notepad++) was just one too low.


All times are GMT. The time now is 09:36 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.