• 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.

DutchRits

Second Lieutenant
2 Badges
May 2, 2018
115
0
  • BATTLETECH - Beta Backer
  • BATTLETECH - Backer
Good Afternoon All,

I'm looking for some advice on a pet modding project. I've been lurking here and on...ahem...a certain mod site (name withheld to avoid Moderator slapdown for using names & links to other sites) for months trying to find the "perfect" mods to make my BT experience complete, as I'm sure many of you have also done. I was incredibly stoked when SolahmaJoe released his 'Hangar of the Dispossessed' mod, since it added the Warhammer and Marauder. Then he added the Phoenix Hawk, and the gears in my brain went into overdrive.

Thanks in advance for reading through my post, and I look forward to any/all advice.

CONCEPT: Using HotD and joelmeador's Mech and Vehicle Resizer, it would theoretically be possible to introduce the Stinger, Wasp, Valkyrie, and Crusader.
ISSUE: Possible JSON errors most likely related to the hardpoint definitions vs the assetbundles
METHODOLOGY:
- Examined the mod format for HotD & JK_Variants in Notepad ++.
- Attempted to use BMIT, but found it to be less than intuitive (what is the difference between using BMIT and the 'mod' JSON to write to the VersionManifest?). The more I think about it, given that SolhamaJoe & JustinKaseToo both use BMIT, I should probably play around with it some more.
- Decided to focus on manually editing the JSONs

Effort #1: I attempted to create individual Mods for each mech using the same format SolahmaJoe used for HotD. I created all the JSONs using his file format, edited all the values, etc.
Effort #1 Result: abject failure. Endless load cycle, and the output log showed numerous conflicts. I deleted all my custom mech mods and restored functionality to the game.
Silver Lining: a tabletop variant I'd made of the Phoenix Hawk back in the day successfully appeared in-game. All I'd done was add it's mechdef/chassisdef to the existing HotD folders.

Effort #2: following my successful load of my tabletop Phoenix Hawk, I edited my Stinger/Wasp/Valkyrie/Crusader JSONs and parked them in the HotD Phoenix Hawk folders. I pointed them all to the HoTD Phoenix Hawk hardpointdatadef, and edited it to reflect the added missile hardpoints.
Effort #2 Result: partial success. The game loaded, but when launching into a mission it went into the endless loading cycle, again. Output log indicated that there were conflicts with the 'assetbundles', which I took to mean the actual definitions of the hardpoints alluded to in the hardpointdatadef and the physical locations & graphical depiction of the 3D model itself. In short, I'm assuming that all the work SolhamaJoe did in configuring the models for BT meant that the missile hardpoints I introduced for the Wasp, Valkyrie, and Crusader created conflicts.
Silver Lining: The Stinger mod worked, which is probably because the hardpoints are so similar to the Phoenix Hawk. Haven't seen it in-game yet, but I also didn't see any errors in the output log. I re-accomplished Effort #2 with only the Stinger mod, and I haven't had any conflicts (yet).
Possible Conflict: I attempted to create missile hardpoints in the legs of the Wasp & Crusader, IAW the lore. I knew it would probably cause a conflict, and I assumed that it would appear in the output log. I may attempt to simply move the hardpoints into the L/R torsos instead. However, the missile hardpoints in the torsos for my Crusader variant already showed a conflict in the output log.

Bottom Line: So now I'm getting ready for Effort #3. My questions are:
- how do I create the missile hardpoints in the arms/torsos so that it won't cause a conflict with the assetbundles? I know the MWO Phoenix Hawk has one variant with missile hardpoints (e.g., the Roc, with both in the left arm), but that doesn't necessarily translate to the torsos. I don't need an accurate weapons fire animation; I just want to have the mech variant available.
- am I correct in assuming that the 'mods' JSON is writing to the Manifest, or am I skipping a step in not manually editing the csv values? (I wanted to avoid this, since I gather you have to re-accomplish your edits every time there's an update)
- am I over-complicating the process, and is there an easier way to accomplish this? (i.e., BMIT)

Bonus Question: does anyone know if SolhamaJoe will add the Rifleman/Archer? (fingers crossed)

Thanks again for taking the time to read.

-DutchRits
 
Good luck, Good @DutchRits! I do indeed hope either yourself or @SolahmaJoe nmanage to add the Stinger, Wasp, Valkyrie and Crusader BattleMechs to BATTLETECH Modded game-play. : )
 
Good luck, Good @DutchRits! I do indeed hope either yourself or @SolahmaJoe nmanage to add the Stinger, Wasp, Valkyrie and Crusader BattleMechs to BATTLETECH Modded game-play. : )

Thanks! I'm standing on the shoulders of giants, and just trying to get a simple mod to work. SolahmaJoe, JoelMeador, and JustinKaseToo have done all the heavy-lifting and deserve all the credit. I wouldn't know where to even begin if it weren't for all their efforts.
 
If you're editing JSONs yourself, you need to modify the CSV manifest yourself also. I personally keep copies of the original and modded version manifest so that I can swap my personal mods in and out easily.

One of the golden rules of programming and - by extension - creating mods is to change as little as possible each step of the way so that you can tell where things broke and focus in on that specific problem without getting confused by other things going on. Try creating a Phoenix Hawk duplicate first with only the name changing, before making the equipment changes you want. I suspect you'll need to change the IDs of the mech, chassis, and movement profile but leave the asset bundle references the same... but without going through the process myself I'm not sure if that's exactly right. I'd recommend working your way down by making a duplicate mech that uses the same chassis and making sure it works, then duplicating the chassis and pointing the mech definition to the new chassis, and so forth.

Once you get to the equipment changes, if you don't care about the graphics you should be able to just add whatever hardpoints you want. Don't try to reference graphical assets that don't exist, though... simplest thing to do is just don't touch the hardpoint definition file and only modify the chassis file. The chassis definition tells the system what hardpoints to allow, while the hardpoint file is only responsible for telling it how to map them onto the 3D models.
 
bloodydoves also added the Annihilator, so he'd be another possible source of info.

Also, there were a ton of threads in the original BT forums Beta Off Topic section:
https://community.battletechgame.com/forums/categories/41

as well as some very good discussions in the first days of this subforum.
 
If you're editing JSONs yourself, you need to modify the CSV manifest yourself also.
Oh, minor exception I should mention in case it wasn't obvious... if you're only changing existing JSONs, you don't need to change the manifest. The changes are needed only if you're adding new files... to tell the system to load those files.
 
If you're editing JSONs yourself, you need to modify the CSV manifest yourself also. I personally keep copies of the original and modded version manifest so that I can swap my personal mods in and out easily.

One of the golden rules of programming and - by extension - creating mods is to change as little as possible each step of the way so that you can tell where things broke and focus in on that specific problem without getting confused by other things going on. Try creating a Phoenix Hawk duplicate first with only the name changing, before making the equipment changes you want. I suspect you'll need to change the IDs of the mech, chassis, and movement profile but leave the asset bundle references the same... but without going through the process myself I'm not sure if that's exactly right. I'd recommend working your way down by making a duplicate mech that uses the same chassis and making sure it works, then duplicating the chassis and pointing the mech definition to the new chassis, and so forth.

Once you get to the equipment changes, if you don't care about the graphics you should be able to just add whatever hardpoints you want. Don't try to reference graphical assets that don't exist, though... simplest thing to do is just don't touch the hardpoint definition file and only modify the chassis file. The chassis definition tells the system what hardpoints to allow, while the hardpoint file is only responsible for telling it how to map them onto the 3D models.

Oh, minor exception I should mention in case it wasn't obvious... if you're only changing existing JSONs, you don't need to change the manifest. The changes are needed only if you're adding new files... to tell the system to load those files.

Thanks, @ronhatch

I must have misread the ModTek & BTML Readmes, then. I thought the “Manifest” section of the mod JSON wrote to the Manifest for you, so you didn’t have to muddy around with it. I’ll have to give it another shot.

As for your “keep it simple” principle, I rediscovered that the hard way, though your advice is definitely warranted and welcome. My Stinger mod appears to work (though I still haven’t encountered one in the campaign; I may amend the Random Campaign Start mod to test it out) but I made the mistake of loading 5+ mods at once, all based upon edits of the HotD Phoenix Hawk. The sheer plethora of errors makes it difficult to pin down.

Ignoring the hardpointsdef is something I hadn’t considered. The video tutorial I followed (I don’t have the reference in front of me; I got it from the BT mod wiki) said to modify it, so I did. It makes sense, though, particularly in light of other guidance that only modified the chassisdef and mechdef.

I’ll have to do some more testing, though probably not until this weekend. I’ll let you know how it goes!
 
Last edited:
bloodydoves also added the Annihilator, so he'd be another possible source of info.

Also, there were a ton of threads in the original BT forums Beta Off Topic section:
https://community.battletechgame.com/forums/categories/41

as well as some very good discussions in the first days of this subforum.

It may be blasphemy, but I’ve never been a fan of the ANH, from a design standpoint. It’s visually repugnant, IMHO, though I understand why people like it from a lore and tabletop metrics standpoint. That’s why I never downloaded the mod...it’s exclusive to Wolf’s Dragoons, and I don’t like it. Petty, yes, particularly since I don’t mind the MAD II, but...
I’ll have to at least check the work to see if I can draw comparisons. Thanks for the tip!

As for the Beta discussions, the guidance/discussions all appears to center on getting the Mechs to appear in skirmish, which I’m not particularly interested in doing, TBH, and the process for getting them to appear in campaign is different, as I understand it. I may have to give it another look, though. Thanks!
 
Yep, the ANH is an ugly sucker, but the textures are so different that it might be helpful.
 
I must have misread the ModTek & BTML Readmes, then. I thought the “Manifest” section of the mod JSON wrote tot he Manifest for you, so you didn’t have to muddy around with it. I’ll have to give it another shot.
Oh, I misunderstood then... I thought you were talking about when not using ModTek & BTML.

I haven't gotten to know those tools yet myself, but IIRC part of the point of them is to avoid the manifest changes that are needed without them. So yeah, if you're using them, don't change the manifest yourself.
 
As for the Beta discussions, the guidance/discussions all appears to center on getting the Mechs to appear in skirmish, which I’m not particularly interested in doing, TBH, and the process for getting them to appear in campaign is different, as I understand it. I may have to give it another look, though. Thanks!
Could be wrong here, because again I don't know ModTek & BTML well... but I believe the only difference for the campaign is that changes need to be made to the database... and that's one of the parts that ModTek & BTML just take care of for you. So I suspect that early information could still be useful.
 
@ronhatch: thanks! I think you’ve got me pointed in the right direction, at least. I’ll restore the baseline HotD hardpointsdef and test each mechdef/chassisdef individually, AFTER adding the ANH mod to my file comparison.

I’ll re-examine my assumptions regarding ModTek & BTML WRT the beta information, though my bet is that it centers upon direct JSON & Manifest edits.

It may all be academic anyway, thanks to the Flashpoint update. I may just wait to see what the impact is to the vanilla file structure and mods, first, since I’m assuming a new version of ModTek & BTML will be needed.
 
@ronhatch: since I’m assuming a new version of ModTek & BTML will be needed.

So far, this hasn't been the case with the previous patches and I hope I will run BTML and go right into my saved campaign today, as usual.
 
After painstakingly loading each mod, one-by-one, and testing its effects in-game, I’ve finally gotten most of my preferred mods to work (crossover from the other thread about (v)1.3 crashing all mods), AND I figured out my errors in my Stinger/Wasp/Valkyrie/Crusader jsons, and I’m happy to report they work quite well in-game. The Valkyrie was especially nasty to encounter in earlier phases, particularly when more than one was in the OPFOR.

Thanks again for the advice!
 
Care to share your mod? Please?
 
Perfect, that's exactly what I wanted, thanks very much. Good luck.
 
@DutchRits Just so you know, SolahmaJoe is actually modeling the Stinger/Wasp/Valk/Crud and mentioned that he expects to have them out soonish. You should come by the Discord and chat with us some time, there's good modeling work taking place still and we're happy to help new modders. If you need a link to the Discord, hit me up via PM, I'll sort ya out.

Also, no worries about not being an Annihilator fan, it's not everyone's favorite like it is mine. :D In case you didn't see, I also did the Assassin awhile back. It's on the Nexus, if you're into that sort of mech.
 
Very nice to hear about the Stinger/Wasp/Valkyrie/Crusader.

An Annihilator with 4 AC10+++ is the killingest mech in the game. Ronin drives one in my company and averages nearly 3 kills per drop.