New Development: ModHelper and Utilities

Kick back and discuss whatever takes your fancy.
Post Reply
Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

New Development: ModHelper and Utilities

Post by Mystical Panda » Wed Aug 09, 2017 5:07 pm

As I complete each app, I'll post it here for download. These are just the current apps, there are many more that I have planned as I go, and each will address a different task/ problem with modding. Hopefully there'll be something in there for everyone.


 


The following is required:


All the tools in testing and development were compiled using the latest version of Microsoft's .NET, which as of this is 4.6.1; the download link is here


 


The following modding tools are currently under development:


ModHelper FORM  [rewrite in-progress. ongoing. testing] Standalone. A load order/ mod manager.


FOMODUtility FORM  [on going. testing] Standalone, but designed to work with Modhelper. A simple FOMOD installer.


ModInstallStepper FORM  [done. testing] Standalone. A multimedia mod installation helper.


ESXUtility CLI  [some features done. ongoing. testing] Standalone. A general purpose multi-use ESP/ESM extract, builder.


UninstallAllMods CLI  [rewrite queued] Standalone. A total mod uninstaller- uninstalls all mods, for the specified game, installed with ModHelper. Doesn't require ModHelper, but uses the manifest file created by it.


NIFUtility CLI  [on hold] Standalone. A general purpose NIF application.


FixModErrors CLI  [in design. future project] Standalone. A general purpose application to check the specified load order for a myriad of problems. This app is an open-ended back-end to ModHelper.


 


The following modding tools are a 'work in progress' but are required as a back-end:


BSAUtility -  CLI  [mostly done. rewrite scheduled] Standalone. A general purpose multi-use BSA extract, builder.


 


The following modding tools are currently ready for testing (just waiting on docs before linking them):


BugReporter -  FORM  [open. testing: v0.0.0.22] Standalone. Helps to manage and report bugs in various applications. New applications, features and suggestions are also supported; for new just use "NEW", or some other keyword in the  version field.


SimpleFileWatcher -  CLI  [done. testing: v.0.0.0.23] Standalone. A simple program to watch for files and move them to a specified folder.


MonitorProcess CLI  [done. testing: v0.0.0.23] Standalone. A general purpose application to sample cpu/memory and gpu usage (not yet available). This app is an open-ended back-end to ModHelper, but can be used to monitor any process; the output is saved in a regular text format.


GenericUtilityInterface FORM  [done. testing: v0.0.0.23] Standalone. A simple GUI interface for the standalone apps like BuildArchiveCatalog (and others- makes selecting and creating output files easier). Initially it's slightly specialized and limited to it's use, but that should change over time.


BuildArchiveCatalog -  CLI  [done. testing: v0.0.0.23] Standalone. Creates a 'catalog' of file names from BSA archives.


SortArchiveCatalog -  CLI  [done. testing: v0.0.0.23] Standalone. Sorts a 'catalog' in various ways.


ShowMeshTextures -  CLI  [done. testing: v0.0.0.23] Standalone. Shows the texture references in a .nif file.


FindMissingMeshTextures -  CLI  [done. testing: v0.0.0.23] Standalone. Shows which textures referenced in a .nif file are missing as a loose file or in a 'catalog' (built either manually or with BuildArchiveCatalog using BSAUtility).


ShowPluginAssets -  CLI  [done. testing: v0.0.0.23] Standalone. Shows assets references in 'plugins'.


FindMissingPluginAssets -  CLI  [done. testing: v0.0.0.23] Standalone. Shows which assets referenced in 'plugins' are missing as a loose file or in a 'catalog' (built either manually or with BuildArchiveCatalog using BSAUtility).


CreateGenericArchive -  CLI  [done. testing: v0.0.0.23] Standalone. A general purpose archive file creator; creates a custom 'generic resource archive' .gra file.


ExtractGenericArchive -  CLI  [done. testing: v0.0.0.23] Standalone. A general purpose archive file extractor; extracts files and/ or folders from a 'generic resource archive' .gra file.


ShowModdingInfo -  CLI  [open. testing: v0.0.0.23] Standalone. A general purpose modular app that reports information about the current load order, etc.,. to a text file which can then be easily posted/ uploaded to a forum when needing help. Should save the  user quite a bit of time.


MergeGameAssets -  CLI  [open. testing: v0.0.0.23] Standalone. Builds a merged folder or archive from specified mod archives, from the same or different games (F03 and FNV for TTW as an example). Allows matching assets 1-to-1 against vanilla assets from the same game removing any that aren't found, or selectively including only specific assets in the final merged folder or archive. Used BuildModFolder as a back-end.


BuildModFolder -  CLI  [open. testing: v0.0.0.23] Standalone. A simple program to standardize the file layout in a mod folder to make the files easily installable by mod organizer applications; a back-end to ModHelper.


CreateModArchive CLI  [open. testing: v0.0.0.23] Standalone. A simple program to build a mod archive from the assets defined in the specified plugins. The mod archive also includes the specified plugins and their associated BSA archives, and optionally any loose asset files found in the specified folder.


SearchForModFile -  CLI  [done. testing: v0.0.0.23] Standalone, but requires BSAUtility as a back-end. Searches both archives and loose files for the specified search string- used to locate file names in archives and loose files.


SetConfigFileValue CLI  [done. testing: v0.0.0.23] Standalone. A simple program to add and/ or change keywords and their associated values in configuration files. Supports the clipboard, command line and a 're-apply' file as input.


CheckGameAssets -  CLI  [open. testing: v0.0.0.22] Standalone. Checks for an 'invalid' game asset. For now just does simply file name checks.


SearchMeshForTexture -  CLI  [done. testing: v0.0.0.22] Standalone. Searches meshes specified individually, or within a folder for texture names that match the specified search. Searching for 'partial' names is supported.


SearchPluginForAsset -  CLI  [done. testing: v0.0.0.22] Standalone. Searches plugins specified individually, or within a folder for asset names that match the specified search. Searching for 'partial' names is supported.


SearchArchiveCatalog -  CLI  [done. testing: v0.0.0.22] Standalone. Searches the specified catalog for file names that match the search criteria; multiple search items are supported. Also shows all the file extensions in a given catalog.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

ModHelper Update: Multiple

Post by Mystical Panda » Wed Aug 09, 2017 5:12 pm




ModHelper Update: Multiple bug fixes, and additional features added; code section rewrites should start today. The 'Downloads' tab now has it's own context menu and allows directly installing and/ or putting the mod archive files into the load order (should save a few steps) and should now properly ignore canceled downloads. Added drag/drop functionality also, allowing moving folders of mod archives and/ or individual mod archive files to ModHelper's custom 'archives' folder.


I'm still doing lots of game testing with builds; this helps me see potential modding problems, and develop ways to address them. I started getting some NVAC hits after adding the last 4-5 mods, so I'll need to take time and see if I can figure out what's causing the problem. I'm sure some things are 'out of order' installation wise as I just tossed things in that seemed interesting as I went.





 



User avatar
jlf65
Posts: 1101
Joined: Wed Aug 10, 2016 9:10 pm

Great summary of the tools

Post by jlf65 » Wed Aug 09, 2017 5:35 pm

Great summary of the tools you're working on. Now the status is all in the opening post, and you can update it as things get done.


Question: does the load order {MODS} list show them in the order you installed them? That would be helpful in remembering which mods you installed last when things start going wrong. Also, if I were a guessing man, I'd guess it's the combination of the BnB mod with the 1st person weapon anim mod... animations are critical as to the skeleton used, and I ran into all kinds of issues when I last tried to get BnB to work with everything else. In particular, I found that this skeleton caused me no end of trouble:


http://www.nexusmods.com/newvegas/mods/45229/?


That's a "compatibility" skeleton that's supposed to work with everything... and caused me no end of trouble until I got rid of it. I mention that because I noticed it in the mod list. wink



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

"does the load order {MODS}

Post by Mystical Panda » Wed Aug 09, 2017 6:27 pm

"does the load order {MODS} list show them in the order you installed them?"


Yes it does. The 'Plugins' window is broken down into two separate sections, even though it's in a single form (list). There are sub-sections like 'Official Files' and 'Third Party' files, but that's mostly cosmetic and part of the original code base. Those basically break down the plugins, at least initially, into sections based on their origin. I also color code the background color based on if it's an original game plugin, or a third party one. Towards the bottom of that list you'll see a section called 'Install Order'. This is the installation order for the mods, just like the 'Plugin' list above it is the load order. The 'Loose Files' (installation order) have a blueish background. Both the plugins and 'Installation Order' can be arranged by draggin-n-dropping the entries around; set the plugins in the order you want, and set the mods to install in the order you want.


That's a "compatibility" skeleton that's supposed to work with everything... and caused me no end of trouble until I got rid of it.


The Ares Project had it listed as requirement, plus I'm pretty sure it conflicts in someway with the Type 3/6M. The installation order definitely doesn't have any logical order other than following a few simple rules. I kinda tossed in things I found interesting to test the mod manager functions. I would like to revisit this eventually and 'build' certain load outs that might be of interest to community (with step by step instructions), possibly helping those new to the modding scene.



User avatar
jlf65
Posts: 1101
Joined: Wed Aug 10, 2016 9:10 pm

The only "reliable" skeleton

Post by jlf65 » Thu Aug 10, 2017 1:15 am

The only "reliable" skeleton I found for BnB was the one that came with it. It's at least something you can try.


As to install order versus load order, it's good to have both. They each help in finding problems, so I'm glad the tool does both.


 



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

One of the problems I

Post by Mystical Panda » Thu Aug 10, 2017 3:13 am

One of the problems I encountered while modding was the inclusion of 'data' from one mod that wasn't compatible with another, yet, omitting the data didn't cause any adverse effects (at least none that I could immediately notice). An example would be the 1st person animation replacers. I already had those installed, but when I installed (if I remember correctly) the FO1-FO2 weapons later, it also came with animation replacers; replacing the ones I installed previously. This had the adverse effect of causing two laser beams, in 1st person, to appear through the scope (one went dead center, the other went high-left), instead of one. I'm considering a 'way' to lock certain files or file types from being overwritten. This way, anything that might be included as a loose file won't be installed past a certain point in the mix. Think dragonsript.pex. It 'protects' a file or type type (.kf in my case) from being overwritten, or at the least prompts the user asking if they want to replace a 'protected' file/ file type instead of just blindly scrubbing it.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

ModHelper Update: Added the

Post by Mystical Panda » Thu Aug 10, 2017 8:38 am

ModHelper Update: Added the 'Reapply Config Changes..." as a drop down menu item in the toolbox. This provides a one-click system to reapply all changes to all configuration files that were changed for a specified game/ load order.



User avatar
jlf65
Posts: 1101
Joined: Wed Aug 10, 2016 9:10 pm

Yes, some way to say that

Post by jlf65 » Thu Aug 10, 2017 3:08 pm

Yes, some way to say that (certain) files with a mod should have priority would be a good feature. That's always a big issue with installing mods, and why I tend to manually install mods. I can decide on which mod has prioirty by allowing or disallowing overwriting files while copying the mod into place.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

jlf65 wrote:

Post by Mystical Panda » Sat Aug 12, 2017 7:04 am

[quote=jlf65]


 


Yes, some way to say that (certain) files with a mod should have priority would be a good feature. That's always a big issue with installing mods, and why I tend to manually install mods. I can decide on which mod has prioirty by allowing or disallowing overwriting files while copying the mod into place.


[/quote]


I think I just about have a initial idea to code out; at least something to give me a starting point to work from. I'm also tinkering around with an idea to auto-generate modding instructions for a given loadout. It should save time in the long run by automating, if possible, many of the 'given' steps.


ModHelper Update: Re-purposed the drag-n-drop 'function' file feature to be usable for any file, not just functions declared within 'modhelper.ini'; this will allow sharing all types of 'data', not just functions. Start re-writing many of the program's functions (the first of 13+ apps), moving towards an alpha-release. There's tons and tons yet to do; some crashes to figure out. I also have a few idea on some additional 'tabs' we might need in the future.


Modding Update: NVAC is no longer spitting out tons of crash mitigations since I removed MonsterMod from the list. I'm not sure why, other than a potential conflict with YUP or PN. Also, the LodGen.exe v3.2 (in FNVEdit) crashes on some .nifs with an invalid index when building the LOD, while LodGen.exe v3.1.2 (in FNDLodGen) doesn't. There's a FNVEdit v3.1.2 version availble, but haven't tried it yet.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

Here's a quick example of the

Post by Mystical Panda » Sun Aug 13, 2017 3:27 am

Here's a quick example of the overwrite protection for files/ extensions. It's just a basic construct, but allows 'protecting' files when installing mods.


Problem: When building a loadout, I had the rifle and gun animations I wanted overwritten by a mod that came later in the installation order. The author had included some .kf files with his weapons mod, and they were causing animation artifacts while scoping. Since I also wanted the author's weapons (just not his animations), I had to go in and do some manual maneuvering.


Solution: In the example I want to keep from overwriting any .kf files (you wouldn't normally do a 'blind' protect on all .kf files since that would prevent installing other types of animations) that were installed with my chosen 1st person weapons animation mod, so that's what I entered (you can enter multiple files, file extensions, etc.,. separated by a ","). The file names entered can be any file that might be installed (even esp/esm/bsa, etc.,.). This system only works with loose files atm, files contained within archives aren't checked since the archive is copied as a single file.


I could easily add all files for a mod to the 'protected' list when selected, but that would potentially create a VERY large 'check-list' and slow down large installations considerably. Especially if the 'protected' mod files were, say, a bunch of replacement texture packs. But, it could be added if needed.



Post Reply