• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

TLRoff

Captain
5 Badges
Sep 13, 2018
303
23
  • BATTLETECH
  • BATTLETECH: Flashpoint
  • BATTLETECH: Season pass
  • BATTLETECH: Heavy Metal
  • Crusader Kings II
Humm. I'm starting to think that the way we're running mods might not be the better way of running them.

One util I use with other games (the shiznik running Panzer Corp!) is called "JSGME" ie Generic Mod Enabler. It works very simple.. it simply replaces the files in the installed version of the game with your modded files. It does requires some extra work for the mod maker. Instead of appending data to an existing file which is what we can do under the current modding scheme with Modtek you've got to have all you need in the file to be replaced because thats what it does is replace the vanilla file with the modded file (the vanilla file is kept in an archive so when you disable the mod your back to the base install.) Generic mod enabler can also snapshot the base install for you also making it very easy to figure out if something has gotten corrupted.

This does work with Battletech. I've just tried some simple mods using JSGME and it does work especially with stand alone mods that don't add anything just replaces/overrides existing files such as the mod "Skip to Leopard" which bypasses the tutorial and the majesty metals mission.

It does require having files in proper folders and sub folders as they must be in a folder in the mod that exactly matches the path where it needs to go from the games root directory. The "Mods" file then becomes a mod depository where you drop mod packages and where the files replaced by the mods are kept.

Now.. the does bring in an issue with composite mods in that we may need to have a composite mod tool oor set of tools that will ease the assembly of the mod by doing all those pesky appends. An example would be the Battletech extended 2025 mod run with the SLDF divisions mod, run with the Weapons diversity 3025 mod. All these mods make some changes to core files.. Weapons diversity especially as it add quite a few weapons and then appends the loadout of pretty much all mechs in the game. This mod would need to have the actual modified files complete with their changes as part of the mod. This would be all the changes made for upgrade gear, mechdef files weapondef files etc.

So the needed tool is an external compiling tool to make several possible sub mods play nice with each other, possibly take care of all those appends with current mod structure used with Modtek. Once your composite mod is put together then install with GME and play.

I'm going to try and modify some mods to work as a GME mod.. In some cases it means having to go in and manually append a vanilla file with the modded data and then it becomes part of the mod. I hate doing manual appends.. I always screw them up! Ah well...

And to also note GME may not be the best tool for the job but I do use it with a lot of games...So I'm rather comfortable with it, And GME can run multiple mods but if a mod overwrites another mods changes well.. That's why a mod compiler/conflict checker is needed.
 
Addendum:
Putting my time where my mouth is I have converted the following mods so far to a format useable by GME for testing purposes.

Community Asset Bundle (simply created folder structure and dropped appropriate files into appropriate folders)
Flashpoint "The Raid" ( simply incorporated the photo's mod with main mod, added folder structure..super simple)
Skip To Leopard (same way as the CAB).

and a quick toss together of some additional mechs to make sure everything worked.. and it did...No issues.

Working on SLDF divisions mod now, Weapons diversity mod will be next.. that's going to be a great large amount of editing and time and cutting, and pasting... Oh what fun! then comes the big one... 3025 extended which will be a lengthy project due to all the JK stuff.. And I'm going to have to check to see if I can drop and run DLL mod such as resizer, weapon realizer etc in the game with GME.. I've a good idea where they need to be I'll figure it out as I go. I think this particular area is where Modtek has been coming into play.
 
Update 10 hours later:

Ok, I've trimmed, merged, cut pasted and restructured mods for all these hours since the last post. My brain is starting to feel numb.

I've adapted The community assets bundle, Battletech extended 3025, Flashpoint-The Raid, Give them Kell, Project 3039, Skip to Leopard, and SLDF Royals division to a structure that GME can use.

Now it's testing time. Holding off on vehicle improvement project due to all the resizing of existing models that's done for that mod.. Until I'm clear on how to handle that it'll have to wait. And also adapting weapons diversity which is mostly cutting and pasting into the games original mechdef files as that is where the big changes happen. On the subject of resizing I expect to run into a head scratcher...I'm all ready scratching my head on this so more and heavier head scratching and may be even some power face planting on the keyboard ahead.

I've made no experiments with dropping DLL's in because frankly.. I get the heebie geebies just thinking about it yet. And it's a level of doing things I've never tried before.. SO for now I'm focused on "Added Content" Adding game functionality will have to wait. I am not a programmer, I am a hobbyist.

ABSOLUTLY NOTHING is going to be posted in the way of files/packs as of ye. Not until I've found out what will and will not work. Once I know what works I'll check with the authors who created the work I'm adapting to make damd sure they're ok with this.

If everything works my plan is to put together vanilla mech bay pre clan war era consolidated mod pack for use with GME. with all the mods I've mentioned.

TLRoff sends
 
If I understand correctly, the only way what you’re describing is different than ModTek is that the core game files are replaced in-place instead of at run-time, is that right?

Functionally, once the game loads, there’s very little difference - modtek just intercepts and replaces what’s loaded into Cache/memory without tampering with the stuff that’s on your hard drive, and only under rare specialized circumstances does the game actually reload from the hard drive because it’s too slow, even with an SSD. There’s a slight performance hit due to harmony running DLL’s over top of the game, but most of the other performance issues come from just loading tons more assets (like mech models) which doesn’t go away with the approach you describe.

As you’ve pointed out, direct replacement is not very compatible with multiple interacting mods to play nice with each other, which is kind of a core feature to be able to combine mods from different people.

It’s also much less forgiving of screw-ups, since you can’t just undo it as easily especially without the risk of copying errors rewriting the HDD lots of times when you change mods is risky. Even with ModTek, you’ve seen what happens when a single bad write corrupts the MDDB on exit, which is a risk anytime you write to disk.

ModTek is certainly not a perfect solution and it has its quirks and flaws, but run-time substitution opens up more utility and customization for both “mod-users” (who can easily and flexibly mix and match mods they want to run, and revert when two mods don’t play nice) and also “mod-makers”, who also benefit from the failsafe feature during development. It’s a matter of pick-your-poison. Without that, anyone who’s not as mod-savvy is stuck gravitating towards preassembled packages like Roguetech, and the barrier to entry for writing your own mods is higher (basically, compare now with pre- Modtech/BTML)
 
i'm programmer and i can say there is no alternative to Modtech. Low Visibility, Custom Components, Custom Ammo Categories and many other mods have to load their DLLs to game process memory and with out Modtech it can't be done (game engine have no external DLLs support). If you only put non-active content (of mods including DLLs) into game folder without DLLs loaded to BattleTech.exe process memory and you probably will see so called "spin of death" when you try to enter mechlab.
So using "Generic" tool not capable inject external DLLs is just not perspective. We are lucky to have Modtech - without it modding would be very limited or every modder would have to solve injection problem by himself - which is requiring more advanced programmer skills.

P.S. Offtopik: Dialcaliper, i've updated CAC to 0.0.60 and implemented your request too.
 
There's also something to be said of MT not actually overwriting the stock files, reverting is a single file. This makes copy/paste undo's sane and validating quick and painless. It also keeps the original file dates untouched and makes checking the last time a file was updated by HBS incredibly easy of you've never uninstalled from day 1. I can open any folder and just by month of last edited see if a file was changed on 1.1, 1.2 and etc. Knowing that was the last time it was officially patched.