• 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.
For the immediate future (at least 48 hours), fairly safe to presume that quite a few mods aren't working.

I'm keeping a running tally on the modding sub-Reddit on which mods are/aren't working, but it's slow-going.

Notifications along the lines of: 'Okay, this one works, no wait it actually doesn't, re-building' are quite frequent on the Discord.

I figured, thats why i opted out of the beta patches when i started modding.
 
@Justin Kase : AFAIK rarity does nothing for 'mechs.
'Mechs in dynamic lances are chosen based on tags set comparison with the dynamic lance 'mechs' allowed tag set and forbidden tag set.
For example: small medim mech cavalry lance d5 requires two 'mechs to have mech_cavalry tag, one of them cannot have mech_assassin tag (amongst others, check dynamic lance spawners). Same goes for vehicles.
Rarity does nothing for lance spawner, might affect the chance to show up in shop though.
 
does the new beta patch work with this mod or does it break it?
I had to go back and make changes to the SL weapons, but yeah that still works without any issues. The one I'm using does not require any changes to the VersionManifest.
 
@Justin Kase : AFAIK rarity does nothing for 'mechs.
'Mechs in dynamic lances are chosen based on tags set comparison with the dynamic lance 'mechs' allowed tag set and forbidden tag set.
For example: small medim mech cavalry lance d5 requires two 'mechs to have mech_cavalry tag, one of them cannot have mech_assassin tag (amongst others, check dynamic lance spawners). Same goes for vehicles.
Rarity does nothing for lance spawner, might affect the chance to show up in shop though.
I'm starting to think this is universally true. I haven't noticed a difference changing the rarity for weapons when they show up in shops, but I definitely have noticed a difference changing the "weight" in the shop files. I know rarity gets called by the salvage routine, so it might just be an important factor there.
 
I'm starting to think this is universally true. I haven't noticed a difference changing the rarity for weapons when they show up in shops, but I definitely have noticed a difference changing the "weight" in the shop files. I know rarity gets called by the salvage routine, so it might just be an important factor there.
@Justin Kase : AFAIK rarity does nothing for 'mechs.
'Mechs in dynamic lances are chosen based on tags set comparison with the dynamic lance 'mechs' allowed tag set and forbidden tag set.
For example: small medim mech cavalry lance d5 requires two 'mechs to have mech_cavalry tag, one of them cannot have mech_assassin tag (amongst others, check dynamic lance spawners). Same goes for vehicles.
Rarity does nothing for lance spawner, might affect the chance to show up in shop though.

Thank you both. The shop rarity seems to come from the Shop files. I am wondering if the 'Rarity' in the 'Mech files is a remnant of old code/ideas (similar to the heat sinks value in the chassis file). One would guess that the Rarity of a 'Mech/Vehicle would be compared to all other 'Mechs that fit the profile in the LanceDefs - so, if the lance called for a Medium Sniper, there should be a greater chance of a "0" rarity Medium Sniper appearing, than a "5" rarity Medium Sniper. But, until we get some info out of HBS, we don't really know for sure :(

Maybe if @HBS_Eck has a little bit of time, he can shed some light :D
 
Version 1.1.0 is out


PLEASE NOTE : There are now 2 versions of the Mod - 1 classic style (1.1.0) and the other made for ModTek/BTML (1.1.0-M) - more details below.

EXTRA NOTE : The BTML/ModTek version is made to work with version 2.3 (or greater) - which allows for specific folders to be chosen to add to the MetadataDatabase.db or not. Also, the first time you load up with 2.3,
it will take the game a bit longer to load as it builds the MDD.db file for the game. Just let it run. It will be faster on the next load (unless you add more mods).

*** Warning : to use things in Campaign Mode, you will need to edit/replace the MetadataDatabase.db file (if doing this manually) - we don't know what sort of lasting effect this might have. If you choose to do a full uninstall of this mod at a future date, and you want to continue with your campaign, you should first sell all 'Mechs, 'Mech Salvage, Weapons, upgrades and Ammo from this mod prior to the uninstall. ***

*** Additional Note : The 1.1.0/1.1.0-M versions of the Mod are dependent on having BATTLETECH Patch 1.1.0, to keep with versioning. The VersionManifest.csv and MetadataDatabase.db files I provide within the Mod are based off those files. You can still manually add the lines to both using the information provided within the Mod should you so wish. ***



This latest version of the JK_Variants mod continues implementation of a ModTek download version - if anyone sees any errors with it, please let me know so I can work to address those issues. While the files are still the same ones in the core mod, they are organized slightly differently.


In the files section up on Nexus Mods you will see 2 options:
  1. JK_Variants - This version follows the same method as all previous builds. Includes line items for people that wish to append into other MetadataDatabase.db and VersionManifest.csv files.
  2. JK_Variants-BTML_ModMek - This version is simply dropped into your ModMek folder, and it should automatically trigger. See notes below for some tips.
NOTE: The new mod.json files are meant to work with ModTek 2.3 and no longer require "break.my.game" and allow you to turn on/off which items get added to the MetadataDatabase.db by editing the Mod.json files in each folder. Read the included PDF instructions for help.

Please continue to report issues and suggested 'Mechs to add in - thank you all!!!
 
For the immediate future (at least 48 hours), fairly safe to presume that quite a few mods aren't working.

I'm keeping a running tally on the modding sub-Reddit on which mods are/aren't working, but it's slow-going.

Notifications along the lines of: 'Okay, this one works, no wait it actually doesn't, re-building' are quite frequent on the Discord.

I figured, thats why i opted out of the beta patches when i started modding.

We should be good to go now - it worked prior to adjustments, but I have fixed it so all the Medium, Heavy and Assault 'Mechs now have the new base stability values, and fixed the weapons to match the new heat profiles.

I also added in a new folder to the mod - "JK_CoreFixes" - which are basically the MinorFixes - but only the ones for 'Mechs, Vehicles and Weapons. This folder has fixes for the base game Mech, Vehicle and a few Weapon files. These are not errors in the Variants, but as part of the base game itself. This new folder addresses issues such as:
  • Commandos and Spider were only allowed to have max 30 head armor instead of the correct 45.
  • Trebuchet max Center Torso armor was 120 and should be 160.
  • Moves the Atlas AS7-D out of the leg and into the Right Torso (where the lore books have it)
  • Replaced the missing MachineGun on the Bulldog.
  • etc.
For the BTML/ModTek side of things, it is just an extra folder that overwrites the files - but doesn't need to be added into the MDD.db, since these files are all already in there ;)

See the list on the Nexus mods description page or the included PDFs for full details.

Been testing the manual mod for the past couple of days and it seems to work - but I'm sure someone will find my mistakes ;)
 
Thank you both. The shop rarity seems to come from the Shop files. I am wondering if the 'Rarity' in the 'Mech files is a remnant of old code/ideas (similar to the heat sinks value in the chassis file). One would guess that the Rarity of a 'Mech/Vehicle would be compared to all other 'Mechs that fit the profile in the LanceDefs - so, if the lance called for a Medium Sniper, there should be a greater chance of a "0" rarity Medium Sniper appearing, than a "5" rarity Medium Sniper. But, until we get some info out of HBS, we don't really know for sure :(

Maybe if @HBS_Eck has a little bit of time, he can shed some light :D
Rarity for 'mechs comes from code re-use.
You have a class called Description that has certain fields defined. The fields can be serialized too (i.e. turned into JSON for example). This doesn't mean that any classes that include Description have to use all the fields.

I've looked through the lance spawning code and all it does is: for each 'mech/vehicle entry in the dynamic lance definition it creates a list of 'mechs that fit the required tags while not having the forbidden tags. Then it shuffles the list and picks the first 'mech to put into the lance. Rarity is not used at all.

You can enforce the rarity to a certain degree by modifying the lance definition files: if certain 'mechs have mech_rare tag and it is forbidden in lance definition for 3 out of 4 dynamically chosen 'mechs, then the rare ones will only have a chance to spawn in the last spot. And it is still random, as long as you don't require the mech_rare tag for the fourth one.
 
Rarity for 'mechs comes from code re-use.
You have a class called Description that has certain fields defined. The fields can be serialized too (i.e. turned into JSON for example). This doesn't mean that any classes that include Description have to use all the fields.

I've looked through the lance spawning code and all it does is: for each 'mech/vehicle entry in the dynamic lance definition it creates a list of 'mechs that fit the required tags while not having the forbidden tags. Then it shuffles the list and picks the first 'mech to put into the lance. Rarity is not used at all.

You can enforce the rarity to a certain degree by modifying the lance definition files: if certain 'mechs have mech_rare tag and it is forbidden in lance definition for 3 out of 4 dynamically chosen 'mechs, then the rare ones will only have a chance to spawn in the last spot. And it is still random, as long as you don't require the mech_rare tag for the fourth one.
Rarity might be used for salvage. At least it is for the weapons. I think I'll write a mod to adjust the picking of mechs to make it rarity based. This will at the very least be useful for a mod that @n3ctaris is working on that makes elite mechs that should only rarely show up in-game.
 
@Dheran Since I can't get to this until later, could you point out where the code for that is? Thanks.
 
Yeah, I had seen how certain tags were used for exclusion/inclusion (like the Unit_Urbie) - but really, it would be nice if we had something from HBS that helped us out with getting a better rarity table defined for 'Mech appearance. I'd rather not have to add a dozen new tags, and/or edit every Lance def to 'force' the game to use 'Mechs of certain rarity levels.
 
Rarity for 'mechs comes from code re-use.
You have a class called Description that has certain fields defined. The fields can be serialized too (i.e. turned into JSON for example). This doesn't mean that any classes that include Description have to use all the fields.

I've looked through the lance spawning code and all it does is: for each 'mech/vehicle entry in the dynamic lance definition it creates a list of 'mechs that fit the required tags while not having the forbidden tags. Then it shuffles the list and picks the first 'mech to put into the lance. Rarity is not used at all.

You can enforce the rarity to a certain degree by modifying the lance definition files: if certain 'mechs have mech_rare tag and it is forbidden in lance definition for 3 out of 4 dynamically chosen 'mechs, then the rare ones will only have a chance to spawn in the last spot. And it is still random, as long as you don't require the mech_rare tag for the fourth one.

Yeah, I had seen how certain tags were used for exclusion/inclusion (like the Unit_Urbie) - but really, it would be nice if we had something from HBS that helped us out with getting a better rarity table defined for 'Mech appearance. I'd rather not have to add a dozen new tags, and/or edit every Lance def to 'force' the game to use 'Mechs of certain rarity levels.

Hi Both,

Just to be clear, there is no 'mech_rare' tag, right?

Are these ALL the tags we can use for mechs and how they are used?


Required:
"unit_mech" - tells the game the unit is a battlemech

"unit_ready" - unknown, included in most mechdefs I believe

"unit_release" - unknown, included in all mechdefs I believe​

Require One of:

"unit_light"​

"unit_medium"

"unit_heavy"

"unit_assault"​


Behavior? -- or lance composition?
"unit_fallback" - allows the unit to create distance in order to continue firing from range

"unit_indirectFire" - allows use of firing weapons without line of sight

"unit_jumpOK" - allows use of jumpjets​


lance composition:

"unit_lance_assassin"

"unit_lance_support"

"unit_lance_tank"

"unit_lance_vanguard"​


unit "roles" define how the AI uses the unit?

"unit_role_brawler"

"unit_role_scout"

"unit_role_sniper"​

Removes mechs from consideration or not used?

"unit_ksbeta"

[Blacklisted]

"unit_urbie"​


Did I miss any tags? or am I mistaken in how the game uses the tags? is there anything else in the mechdef or chassisdef's that are just not used at all (like rarity)?
 
Yeah, I had seen how certain tags were used for exclusion/inclusion (like the Unit_Urbie) - but really, it would be nice if we had something from HBS that helped us out with getting a better rarity table defined for 'Mech appearance. I'd rather not have to add a dozen new tags, and/or edit every Lance def to 'force' the game to use 'Mechs of certain rarity levels.

Howdy! I've made a mod for myself that uses faction based mech and vehicle (JK variants too) rarities mentioned in 3028-3050 Random Assignment & Rarity tables https://bg.battletech.com/forums/index.php/topic,1219.0.html

I created 6 different rarity MechTags for (almost) every faction and edited the lance files to use those tags. Of course I needed to create new lances for every possible target faction to be able to use faction based mechtags. Different faction lances are spawn by adding {TEAM_TAR.FactionDef.Demonym} to the contract file's lance type tag. For example:

Code:
lance_type_fire_{TEAM_TAR.FactionDef.Demonym}

"target faction is pirates" >> lance_type_fire_pirates

Really not sure if this is the most efficient or sensible way to do it, but at least it works. :p

I've been testing the mod few days and I am quite satisfied with the results so far. The "mod" is still very much WIP and needs more testing and tweaking. I'm really not planning on making a mod release, but if someone is interested in making a similar mod, I can provide the files. Might save "few" hours of text editing if someone is planning on making one...
 
@Sabrist - Sounds like the perfect sort of thing for @don Zappo 's compilation mod.

If you want to send me your files, I'll look it over and see about converting it over. I had already been looking at ideas of how to add in faction based lances - though all of this could be cut short if Rarity worked, and if we could assign faction preferences. Something like "PreferredFactions:" "Davion, Steiner, Mercenary". or maybe add rarity classes and then list the factions in the applicable rarity class.

@n3ctaris - Nope, you have the right of it (near as I have been able to suss out).
You missed one for AI:
"unit_role_flanker"​

There were also:
"test"
"unit_approval_Beta"
"unit_release_privatebeta"
"unit_weaponless"
"unit_noncombatant"​


I think that we can also use any of the faction tags in there - so if we want something to be "Kurita" only, we could.
 
Hi Both,

Just to be clear, there is no 'mech_rare' tag, right?

Are these ALL the tags we can use for mechs and how they are used?
The tags are what you want them to be. Or in a more complicated way tags are defined by their use.
For example all lights have tag unit_light which is used by lance spawner to spawn units on early difficulties. However, nothing stops you from putting this tag on an assault 'mech.
There does not seem to be a thing called required tag. A 'mech without tag unit_mech is still a 'mech. But it won't spawn dynamically, because all dynamic 'mech spawners use unit_mech.
Now the funny thing is: unit without weight tag (e.g. unit_light) will still have a chance to spawn, because there are spawners that are exclusive rather than inclusive. For example in lance spawner d10 (highest difficulty level) Battle, one of the 'mechs is defined as NOT unit_light and NOT unit_medium. And a 'mech without weight class tag meets this requirement.

Out of the other tags:
  • unit_fallback is a tag used if something with the spawner goes horribly wrong and no 'mechs are found or something like that. It is a citation from a comment in the code BTW. Currently it is only used on one 'mech which is Cicada CDA-3C. Fallback as in fallback behaviour.
  • BLACKLISTED is used for stuff that should not fall in hands of the player randomly. Spoiler 'mechs are BLACKLISTED. My belief is that you use this to make something unique - it won't drop from 'mechs, show up in stores, be dynamically spawned, etc. Story stuff basically.
  • I haven't seen the ksbeta and the privatebeta tags in use anywhere on 'mechs. They are in use on pilots though (pilot equivalent tags with ksbeta that is): the skirmish AI pilots use them.
  • unit_urbie is a rarity tag in a way. Only the UrbanMech has it, and from what I've seen all dynamic lance spawners (even the assault ones) exclude it. Which answers the question: "why there are no Urbies on the battlefield". So use it to make a 'mech available in shops but not available on the battlefields.
  • The rest of the tags are used in various proportion in the lance spawners. E.g. unit_cavalry and unit_jumpOK is required for most 'mechs in cavalry lance spawner. Battle lance on the other hand will usually not exclude any types of 'mechs (though higher tonnages will require one unit_tank). Etc. Etc. Recommend going through data/lance files that have dynamic in name.
Coming back to unit_rare tag. There is none. But you can make one and add it in couple of spawners. Then create 'mech variants for those weight classes with this tag. If you exclude the tag for 3 out of 4 'mechs and leave the last one without change, the rare 'mech has a chance to spawn, but it is not 100%. So it will happen ... rarely :)
 
@Sabrist - Sounds like the perfect sort of thing for @don Zappo 's compilation mod.

If you want to send me your files, I'll look it over and see about converting it over. I had already been looking at ideas of how to add in faction based lances - though all of this could be cut short if Rarity worked, and if we could assign faction preferences. Something like "PreferredFactions:" "Davion, Steiner, Mercenary". or maybe add rarity classes and then list the factions in the applicable rarity class.

@n3ctaris - Nope, you have the right of it (near as I have been able to suss out).
You missed one for AI:
"unit_role_flanker"​

There were also:
"test"
"unit_approval_Beta"
"unit_release_privatebeta"
"unit_weaponless"
"unit_noncombatant"​


I think that we can also use any of the faction tags in there - so if we want something to be "Kurita" only, we could.

Are the faction tags used at all in the missions today? or I guess the location + mission?
 
The tags are what you want them to be. Or in a more complicated way tags are defined by their use.
For example all lights have tag unit_light which is used by lance spawner to spawn units on early difficulties. However, nothing stops you from putting this tag on an assault 'mech.
There does not seem to be a thing called required tag. A 'mech without tag unit_mech is still a 'mech. But it won't spawn dynamically, because all dynamic 'mech spawners use unit_mech.
Now the funny thing is: unit without weight tag (e.g. unit_light) will still have a chance to spawn, because there are spawners that are exclusive rather than inclusive. For example in lance spawner d10 (highest difficulty level) Battle, one of the 'mechs is defined as NOT unit_light and NOT unit_medium. And a 'mech without weight class tag meets this requirement.

Out of the other tags:
  • unit_fallback is a tag used if something with the spawner goes horribly wrong and no 'mechs are found or something like that. It is a citation from a comment in the code BTW. Currently it is only used on one 'mech which is Cicada CDA-3C. Fallback as in fallback behaviour.
  • BLACKLISTED is used for stuff that should not fall in hands of the player randomly. Spoiler 'mechs are BLACKLISTED. My belief is that you use this to make something unique - it won't drop from 'mechs, show up in stores, be dynamically spawned, etc. Story stuff basically.
  • I haven't seen the ksbeta and the privatebeta tags in use anywhere on 'mechs. They are in use on pilots though (pilot equivalent tags with ksbeta that is): the skirmish AI pilots use them.
  • unit_urbie is a rarity tag in a way. Only the UrbanMech has it, and from what I've seen all dynamic lance spawners (even the assault ones) exclude it. Which answers the question: "why there are no Urbies on the battlefield". So use it to make a 'mech available in shops but not available on the battlefields.
  • The rest of the tags are used in various proportion in the lance spawners. E.g. unit_cavalry and unit_jumpOK is required for most 'mechs in cavalry lance spawner. Battle lance on the other hand will usually not exclude any types of 'mechs (though higher tonnages will require one unit_tank). Etc. Etc. Recommend going through data/lance files that have dynamic in name.
Coming back to unit_rare tag. There is none. But you can make one and add it in couple of spawners. Then create 'mech variants for those weight classes with this tag. If you exclude the tag for 3 out of 4 'mechs and leave the last one without change, the rare 'mech has a chance to spawn, but it is not 100%. So it will happen ... rarely :)


This is really helpful, thanks!
 
Are the faction tags used at all in the missions today? or I guess the location + mission?

They are used in the contracts, but they aren't really used / applied to 'Mechs, Vehicles, etc.

Doesn't mean they couldn't be appropriated and used as such - along the lines of what @Dheran is saying
 
@Rifter - very happy to hear it worked without an issue ;) I was worried in my rushing that I would screw up a file or three :p

Question for the peanut gallery - would people be interested in having 'fluff' restrictions on JumpJets for the variants that 'should not' be able to fit them on? Or just leave it so everything can mount JumpJets?