• 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.
1.5.1.1 Release for BT 1.5.1
Better AI 1.5.1.1 - at GitHub at BattletechModders/BetterAI/releases/tag/v1.5.1.1

For BATTLETECH 1.5.1

Requires ModTek 0.7.1

Instructions:
For older versions - Delete old Better AI folder in BATTLETECH\Mods
Copy BetterAI-1.5.1.1 in to the BATTLETECH\Mods folder.

Major New Feature:

LanceDef's have been partially optimized to fit the appropriate types of pilots in to the best suited 'Mechs. I'm limiting this to two units per Lance to preserve variety. You should see more of the heaviest unit pulling Bulwark in mixed tonnage Lances, more Gunners and Defenders in Battle Lances and at least one Tactician in a Scout Lance. All vehicles have had their potential pilots culled of skill sets they cannot use, primarily the Guts track.

Massive credit goes to scJazz who came upon the initial idea.

Minor New Feature:

This mod now loads after cFixes and Z_Sab_JK_RarityTables to allow them to apply their basic JSON overwrites first and then Better AI's Lance and 'Mech Tags on top of the modified files. If you encounter any merging issues with these or other mods, let me know.

Better AI Permanent Evasion Add On - No update of Add-On required, will work with 1.5.1.1 automatically.
 
Last edited:
Any tips for playing against the better AI? In particular, pertaining to mechs that wish to participate in “direct battle” but cannot mount jump jets?

Humping cover and trying to squeeze out that extra evasion pip from walking with bulwark is resulting in half of my jet-less heavy mechs coming back missing half of their pieces. I had to eject someone the other day. Jumping mechs (with recently acquired hit defense gyros) in areas with good cover and where I can whittle down opposition quickly seem to do fine (also the reinforcement lance contained Vulcans instead of a more typical Bombardier and Archer). In 3.5-4ish skull missions.
 
Last edited:
Any tips for playing against the better AI? In particular, pertaining to mechs that wish to participate in “direct battle” but cannot mount jump jets?

Humping cover and trying to squeeze out that extra evasion pip from walking with bulwark is resulting in half of my jet-less heavy mechs coming back missing half of their pieces. I had to eject someone the other day. Jumping mechs (with recently acquired hit defense gyros) in areas with good cover and where I can whittle down opposition quickly seem to do fine (also the reinforcement lance contained Vulcans instead of a more typical Bombardier and Archer). In 3.5-4ish skull missions.
It loves to reserve and you can exploit that by going before it, but you need to make sure you can handle the response from the other units in the next phase.

Also, it's still a little too self-preserving and will try to flee to a safe location if you wreck it up but not secure the kill. This has a affect of cycling the units actually firing if you just keep picking the next most vulnerable unit to fire on.

Over time you get a feel for which unit it wants to target and can kind of plan around that.
 
It loves to reserve and you can exploit that by going before it, but you need to make sure you can handle the response from the other units in the next phase.

Also, it's still a little too self-preserving and will try to flee to a safe location if you wreck it up but not secure the kill. This has a affect of cycling the units actually firing if you just keep picking the next most vulnerable unit to fire on.

Over time you get a feel for which unit it wants to target and can kind of plan around that.

I did notice that. If there’s a big flaw, it’s that on turn one it will reserve, even if it’s being shot at and has no evasion.
 
I did notice that. If there’s a big flaw, it’s that on turn one it will reserve, even if it’s being shot at and has no evasion.

Yep, I'm debating trying the use the AI Personality setup to make only certain pilots reserve or just cut it by difficulty level. I've set some settings relative to damaged units not reserving, but there is no metrics for "I've lost all my Evasion and I'm being primaried. I should act"

Also, there isn't a check for "An ally is weak, he should move, then when it's my turn next I can then chose to reserve." As the AI almost always works in a set order, I can only check for "If one of my Allies is at risk, I shouldn't reserve" which is basically all the time once the player starts opening up on the AI.

In this thread, there are a few more ways people have played with the reservation weights, but I've just never gotten around to testing them all. It's really time intensive.
 
So, it seems you can't set "Float_PreferHostileECMFields" to a negative value and have "Float_PreferActiveProbePositions" as positive for the role_EWE (RVN's unique role with both ECM and AP) as it throws an exception and will null error "AI Assert" lock the RVN, but only the RVN. Probably because I'm dumb enough to tell it to stay out of ECM fields but also go in to ECM fields to use AP. Hoping to get a quick 1.6 compatible build out in a few hours, but testing for little bugs like that one first.

EDIT: Turns out the problem is also present in stock regardless of those settings.
https://forum.paradoxplaza.com/foru...nullreferenceexception.1186021/#post-25529004
 
Last edited:
1.6.0.1 Release for BT 1.6.0
Better AI 1.6.0.1 - at GitHub BattletechModders/BetterAI/releases/tag/v1.6.0.1

For BATTLETECH 1.6.0

Requires ModTek 0.7.2

Instructions:
For older versions - Delete old Better AI folder in BATTLETECH\Mods
Copy BetterAI-1.6.0.1 in to the BATTLETECH\Mods folder.

Major New Feature:

Initial addition of Urban Warfare Active Probe, ECM and EWE roles and variables. Minor tweaks have been applied, but further testing is needed. Stock Raven and role_ewe have shown to throw null exceptions. Please report any strange behavior regarding Ravens, ECM carriers and AP carriers.

Changelog for 1.6.0.1:

global.json
  • Float_PreferInsideMeleeRangeFactorWeight -0.5 from -1 to allow easier entry to close combat
  • Float_PreferSurroundingHostileUnitsFactorWeight 0.7 from 0.5 to allow better flanking now that "buddy" variables control lance cohesion
  • Float_PreferHostileECMFields 1.5 from 0.3 to increase chance of entering ECM bubble to provide LoS
  • Float_SprintPreferHostileECMFields 0.5 from 0.2 to increase chance of entering ECM bubble to provide LoS
role_activeprobe.json
  • Float_PreferInsideMeleeRangeFactorWeight -0.1 from 0.1 slightly less melee range for AP vehicle
  • Float_PreferLocationsThatGrantGuardFactorWeight 1.5 from 0.5 to match other modded global.json
  • Float_PreferNotSurroundedByHostileUnitsFactorWeight 0.1 added to allow AP unit to enter hostile area to use ping
  • Float_SprintPreferNotSurroundedByHostileUnitsFactorWeight 0.1 added to allow AP unit to enter hostile area to use ping
  • Float_AlonePreferenceWeight -0.8 added and returned to stock value to allow AP carrier to reach enemy to ping
  • Float_PreferActiveProbePositions 1 from 0.5 increase weight to positions they can use ping
  • Float_PreferNoCloserThanMinDistToHostileFactorWeight 0.0 added to allow closer regardless of weapons
  • Float_SprintPreferNoCloserThanMinDistToHostileFactorWeight 0.0 added to allow closer regardless of weapons
role_ecmcarrier.json
  • Float_SprintPreferLowerMovementFactorWeight -1.0 from 0.0 to match other modded global.json
  • Float_PreferLocationsThatGrantGuardFactorWeight 1.5 from 0.5 to match other modded global.json
  • Float_PreferFriendlyECMFields 1.5 from 0.75 to stack tokens
  • Float_SprintPreferFriendlyECMFields 0.5 added to stack tokens
  • Float_SprintPreferHostileECMFields -0.1 added to prevent entering hostile LoS
  • Float_SprintPreferLOSToFewestHostileFactorWeight 0.2 added to prevent entering hostile LoS
role_ewe.json
  • Float_PreferLowerMovementFactorWeight -0.9 added to match other modded global.json
  • Float_PreferHigherExpectedDamageToHostileFactorWeight 2.0 from 0.8 to match other modded scale
  • Float_PreferInsideMeleeRangeFactorWeight -1.0 from 0.0 to prevent enemy entering bubble
  • Float_PreferLocationsThatGrantGuardFactorWeight 1.5 from 0.5 to match other modded global.json
  • Float_AppetitivePreferApproachingRearArcOfHostileFactorWeight 0.1 added to increase weights of staying with Lance
  • Float_SprintAppetitivePreferApproachingRearArcOfHostileFactorWeight 0.0 added to increase weights of staying with Lance
  • Float_AppetitivePreferIdealWeaponRangeToHostileFactorWeight 0.1 added to increase weights of staying with Lance
  • Float_PreferSurroundingHostileUnitsFactorWeight 0.1 added to increase weights of staying with Lance
  • Float_PreferLOSToFewestHostileFactorWeight 1.75 added to keep EWE out of direct fire
  • Float_SprintPreferLOSToFewestHostileFactorWeight 0.2 added to keep EWE out of direct fire
role_vehicle.json
  • Float_PreferHigherExpectedDamageToHostileFactorWeight 4.5 from 3.8 for more aggressive vehicles
mergeDef_mechdef_urbanmech_UM-R90.json
  • unit_role_sniper from unit_role_brawler
Better AI Permanent Evasion Add On - No update of Add-On required, will work with 1.6.0.1 automatically.
 
/BattletechModders/BetterAI/tree/Daily-Test-Branch on github

Daily test branch has started adding in AI ECM tuning. Increased the weight to rush Player's ECM bubble. I also reduced the ghost charges to fire down to 1 from 2 to allow units in the bubble to shoot out vs just bracing and being piecemealed. I will need to add back in "2 charges to fire" for non-combatants, ECM carriers and defensive moves so convoy units and wounded don't give up the LoS blockage. Also due to general AI improvements in the stock code, loosening the melee cowardness to allow the AI to close faster with our new ECM meta.
 
Seems Convoy APCs are not showing that they pull the "NonCombatant" role, which I edited to remain at the stock ECM Charges to Fire at 2. They fired from inside the bubble like any other unit with my test build even though they should be pulling that role over unit_vehicle. Logging has changed and I don't get a every move .csv anymore, which was the only way to get the non-dynamic roles and moods out of the log.

I might just set all vehicles to not fire if only 1 stealth charge, but this will greatly impact any convoy assaults with ECM carriers or a RVN present.
 
1.6.1.2 Release for BT 1.6.1
Better AI 1.6.1.2 - at GitHub BattletechModders/BetterAI/releases/tag/v1.6.1.2

For BATTLETECH 1.6.1

Requires ModTek 0.7.2

Instructions:
For older versions - Delete old Better AI folder in BATTLETECH\Mods
Copy BetterAI-1.6.1.2 in to the BATTLETECH\Mods folder.

Major New Feature:

ECM/AP tweaks to AI. Biggest change is allowing the AI to fire from inside the ECM bubble, at the cost of losing their single stealth charge. APC escorts will also do this, but due to some bugs I can't exclude them from this action yet. I've also enabled Bool_EnableUrbanBiomeNavigationEverywhere to let the AI solve moving around dead end platforms. This needs a lot of testing, let me know if the AI still gets stuck on things.

Changelog for 1.6.1.2:

global.json
  • Float_SprintPreferInsideMeleeRangeFactorWeight -1.0 from -1.5 eagerness to close increased
  • Float_SprintExclusionRadius 120.0 from 200.0 eagerness to close increased
  • Float_PreferHostileECMFields 5.0 from 1.5 eagerness to pop ECM bubble greatly increased
  • Float_SprintPreferHostileECMFields 5.0 from 0.5 eagerness to pop ECM bubble greatly increased when sprinting
  • Int_MinimumECMGhostedPipsToFire 1 from 2 allows firing from inside ECM bubble
  • Bool_EnableUrbanBiomeNavigationEverywhere true from false to allow better pathfinding
global_def.json
  • Float_PreferFriendlyECMFields 1.75 added
  • Float_SprintPreferFriendlyECMFields 1.0 added
  • Float_PreferHostileECMFields 0.0 added to null out wanting to stay in hostile bubble while defensive
  • Float_SprintPreferHostileECMFields 0.0 added to null out wanting to stay in hostile bubble while defensive
  • Int_MinimumECMGhostedPipsToFire 2 added and set to stock value to keep stealth when defensive

role_activeprobe.json
  • Reordered listing to flow in global.json order
role_ecmcarrier.json
  • Int_MinimumECMGhostedPipsToFire 2 added and set to stock value to keep stealth when defensive
  • Reordered listing to flow in global.json order
role_ewe.json
  • Int_MinimumECMGhostedPipsToFire 2 added and set to stock value to keep stealth when defensive
  • Reordered listing to flow in global.json order
role_noncombatant.json - FILE ADDED
  • Int_MinimumECMGhostedPipsToFire 2 added and set to stock value to keep stealth when defensive
role_scout.json
  • Float_SprintExclusionRadius 196.0 from 244.0 eagerness to close increased
role_vehicle_def.json
  • Int_MinimumECMGhostedPipsToFire 2 added and set to stock value to keep stealth when defensive
Better AI Permanent Evasion Add On - No update of Add-On required, will work with 1.6.1.2 automatically.
 
Sweet!

I'm glad the update got in before my attempt at the Raven flashpoint.
(Yeah, I know... try out the new features as soon as the download is finished! I had been on a Diablo 3 binge, though, and hadn't played for a while... and since I want some of the related achievements, I started a new Ironman career... but to keep things interesting, I modded the starting lance to be much weaker than the defaults. Need to work my way up to the flashpoint so that I don't crash and burn.)
 
I haven't touched the game since UW/1.6 because I'm not playing without all the mods/added mechs that make it great. Better AI is definitely one of those necessities.

When they said another patch was coming after the hotfix, I knew it would be a waste of time until that patch hit and all the modders had a chance to update.
 
1.6.2.1 Hotfix for BT 1.6.2
Better AI 1.6.2.1 - at GitHub BattletechModders/BetterAI/releases/tag/v1.6.2.1

For BATTLETECH 1.6.2

Requires ModTek 0.7.2

Instructions:
For older versions - Delete old Better AI folder in BATTLETECH\Mods
Copy BetterAI-1.6.2.1 in to the BATTLETECH\Mods folder.

1.6.2 HOTFIX:

New variables added by 1.6.2 added to global.json hotfix. This is untested in contracts, but should work without issue. Skirmish was tested with no errors.

Better AI Permanent Evasion Add On - No update of Add-On required, will work with 1.6.2.1 automatically.

Changelog:

global.json
  • Float_ConfidenceInSignificantDamageWhileGhostedLevel - Added for 1.6.2
  • Float_WeaponDamageSpreadLerpValue- Added for 1.6.2
  • Float_StructuralDamagePercentageMultiplier- Added for 1.6.2
  • Float_ExpectedAndMaxDamageShootingInGhostStateLerp- Added for 1.6.2
  • Float_GhostStateHysteresisMultiplierTurnIncrease- Added for 1.6.2
  • Bool_ExpectedDamageAccuracyIncrease - Added, set to true
  • Bool_EnableLongRangePathfindingBeActorAware- Added, set to true
  • Float_LongRangeToShortRangeDistanceThreshold- Added for 1.6.2
mechdef_victor_VTR-9S
  • Changed role to unit_role_sniper from brawler to "AC/20 Snipe" like the CP-10-Z
 
Greetings Mechwarriors,

Reminder: please read the forum rules regarding links.
It is imperative to note: No unapproved links: github, reddit, nexus mods ect.

Thank you
 
@Amechwarrior I haven't popped in for a while, but thanks for the updates. I couldn't really enjoy this game without your mods. It is just too easy and tempting to rely on the dismal AI.

I really appreciate your efforts to improve the community! Thank you sir!

Cheers,

Mad
Thanks! Any thing you think the AI could be doing better? I've got some reports of some errant behavior from the ECM adjustments and trying to collect some more data from players.