MekHQ is a java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek.
[X] I've tested the issue against at least the latest MILESTONE version
[X] I've asked on the MegaMek Discord about the error
[X] I've reviewed the BattleTech rules and MekHQ documentation, and I've confirmed that something isn't working as intended.
[X] I've searched the Github tracker and haven't found the issue listed
Severity *
Medium (Gameplay Limitation): Non-core functionality is impaired, providing a suboptimal but playable experience.
Brief Description *
Log of FG3 generation as requested by Illiani.
Log file attached, the relevant section when I originally generated is below. I regenerated and messed around with it after that though. Save file is from AFTER I altered the mission manually, don't have one from after it exists and before I made changes.
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:274) - Target Percentage: 120
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:275) - Difficulty Multiplier: 1.0
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 7159 (adjusted for campaign difficulty)
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE PLAYER TEMPLATE ++
17:55:41,223 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE ADDITIONAL FORCE TEMPLATE ++
17:55:41,229 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE REINFORCEMENTS TEMPLATE ++
17:55:41,229 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE FORWARD OBSERVER TEMPLATE ++
17:55:41,237 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,239 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Free Worlds League Additional Force Generic BV: 3799
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 12007 (adjusted for campaign difficulty)
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE OPFOR TEMPLATE ++
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:453) - Force BV Multiplier: 1.5 (from scenario template)
17:55:41,246 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: H (HHHH)
17:55:41,253 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: M (MMMH)
17:55:41,259 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: H (HHHH)
17:55:41,332 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: A (HAAA)
17:55:41,333 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:790) - OpFor generated a force with 21537 / 18010 Generic BV
17:55:41,333 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:813) - Final force 21537 / 18010 Generic BV (may exceed by *1.25)
17:55:41,333 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,336 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Free Worlds League Additional Force Generic BV: 3799
17:55:41,337 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 12007 (adjusted for campaign difficulty)
17:55:41,344 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,347 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Free Worlds League Additional Force Generic BV: 3799
17:55:41,348 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 12007 (adjusted for campaign difficulty)
17:55:41,355 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0}
mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: M (MMHH)
Prerequisites and Pre-Issue Checklist
[X] I'm reporting the issue to the correct repository:
MegaMek
MegaMekLab
MekHQ
[X] I've tested the issue against at least the latest MILESTONE version
[X] I've asked on the MegaMek Discord about the error
[X] I've reviewed the BattleTech rules and MekHQ documentation, and I've confirmed that something isn't working as intended.
[X] I've searched the Github tracker and haven't found the issue listed
Severity *
Medium (Gameplay Limitation): Non-core functionality is impaired, providing a suboptimal but playable experience.
Brief Description *
Log of FG3 generation as requested by Illiani.
Log file attached, the relevant section when I originally generated is below. I regenerated and messed around with it after that though. Save file is from AFTER I altered the mission manually, don't have one from after it exists and before I made changes.
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:245) - GENERATING FORCES FOR: FRONTLINE DISRUPTION
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:274) - Target Percentage: 120
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:275) - Difficulty Multiplier: 1.0
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 7159 (adjusted for campaign difficulty)
17:55:41,222 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE PLAYER TEMPLATE ++
17:55:41,223 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE ADDITIONAL FORCE TEMPLATE ++
17:55:41,229 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE REINFORCEMENTS TEMPLATE ++
17:55:41,229 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE FORWARD OBSERVER TEMPLATE ++
17:55:41,237 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,239 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Free Worlds League Additional Force Generic BV: 3799
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Unknown Hostiles Generic BV: 1049
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 12007 (adjusted for campaign difficulty)
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForces(AtBDynamicScenarioFactory.java:287) - ++ GENERATING A FORCE FOR THE OPFOR TEMPLATE ++
17:55:41,240 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:453) - Force BV Multiplier: 1.5 (from scenario template)
17:55:41,246 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: H (HHHH)
17:55:41,253 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: M (MMMH)
17:55:41,259 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: H (HHHH)
17:55:41,332 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: A (HAAA)
17:55:41,333 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:790) - OpFor generated a force with 21537 / 18010 Generic BV
17:55:41,333 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:813) - Final force 21537 / 18010 Generic BV (may exceed by *1.25)
17:55:41,333 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,336 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Free Worlds League Additional Force Generic BV: 3799
17:55:41,336 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Unknown Hostiles Generic BV: 1049
17:55:41,337 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 12007 (adjusted for campaign difficulty)
17:55:41,344 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2719) - Total Seed Force Generic BV: 7159
17:55:41,347 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Free Worlds League Additional Force Generic BV: 3799
17:55:41,347 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2736) - Unknown Hostiles Generic BV: 1049
17:55:41,348 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.calculateEffectiveBV(AtBDynamicScenarioFactory.java:2740) - Total Base Generic BV Budget: 12007 (adjusted for campaign difficulty)
17:55:41,355 INFO [mekhq.campaign.mission.AtBDynamicScenarioFactory] {AWT-EventQueue-0} mekhq.campaign.mission.AtBDynamicScenarioFactory.generateForce(AtBDynamicScenarioFactory.java:662) - Force Weights: M (MMHH)
Steps to Reproduce
No response
Operating System *
Windows 10
Java Version *
17
MekHQ Suite Version *
Free Text (type manually)
Custom MekHQ Version
10/28 nightly
Attach Files
mekhq.log FG3.cpnx.gz
Final Checklist